python之setattr,getattr,hasattr】的更多相关文章

可以使用setattr(), getattr(), hasattr()动态对实例进行操作. 相当于Java中的反射机制, 或者更确切地, 像JavaScript中属性操作. 具体属性: __dict__: 返回内部属性的字典 其它有用函数: callable(): 判断属性是可调用,即方法 isinstanceof(): 判断实例是否某类…
@Python的getattr(),setattr(),delattr(),hasattr() 先转一篇博文,参考.最后再给出一个例子 getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattrGetattr用于返回一个对象属性,或者方法 class A: def __init__(self): self.name = 'zhangjing'   #self.age='24' def method(self): print"method print&quo…
python 内建函数setattr() getattr() setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性. getattr(object,name,default): 作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值:如果属性name不存在,则触发AttribetError异常或当可选参数default定…
Python自省 这个也是python彪悍的特性. 自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.简单一句就是运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance(). a = [1,2,3] b = {'a':1,'b':2,'c':3} c = True print type(a),type(b),type(c) # <type 'list'> <type 'dict'> <type 'boo…
写一个演示类 class test(): title="验证getattr.setattr.hasattr方法" def run(self): return "run方法的输出" t=test() getattr获取类里面属性.方法:getattr(object, name[,default]) print('获取对象属性的验证:',getattr(t,'title','需要的属性不存在(默认值)')) ''' 1.存在时:输出属性对应的value值 2.不存时:输…
getattr是python里的一个内建函数 getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载. python里面跟getattr相关的有hasattr,setattr,delattr  ,那么我们通过下面的例子,来详细的说说他们的用法. class Xiaorui: def __init__(self): self.name = 'xiaorui' def setName(sel…
1. getattr.setattr.hasattr getattr比较常用,与setattr和hasattr一起出现,他们也是最容易理解的,下面是他的用法: class Profile(): name="xiaoxin" def sex(self): return "male"p=Profile() hasattr(p, "name") # 判断属性是否存在 >>> True hasattr(p, "age"…
一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的过程无法执行等 python异常是一个对象,表示错误或意外情况 (1)在python检测到一个错误时,将触发一个异常 python可以通常异常传导机制传递一个异常对象,发出一个异常情况出现的信号 程序员也可以在代码中手动触发异常 (2)python异常也可以理解为:…
反射机制 先看看我对Java中反射机制的通俗理解:反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是“反”指的是通过对象找到类. 而对于Python,如果我们需要动态导入模块,并且动态地访问对象中的属性和方法,怎么做?请看下面的代码. s = "lib.test.commons" m1 = __import__(s) # 这样仅仅动态导入了lib模块 m2 = __import…
原文:http://www.cnblogs.com/xiaozhiqi/p/5778856.html https://blog.csdn.net/zong596568821xp/article/details/78180229------Python异常捕获与处理 一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的…
getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattrGetattr用于返回一个对象属性,或者方法 class A: def __init__(self): self.name = 'zhangjing'   #self.age='24' def method(self): print"method print" Instance = A() print getattr(Instance , 'name, 'not find') #如果Ins…
Lesson0402_GetatrrWebsite.py #!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 def index(): print('欢迎访问XX网站') def login(): print('登录成功') def logout(): print('退出登录') class People(object): country='China' def __init__(self): p…
判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False.需要注意的是name要用括号括起来   1 >>> class test(): 2 ... name="xiaohua" 3 ... def run(self): 4 ... return "HelloWord" 5 ... 6 >>> t=test() 7 >>> hasattr(t, &quo…
#coding=utf-8 class Employee: '所有员工的基类' empCount = 0 def __init__(self, name, salary): self.name = name self.salary = salary Employee.empCount += 1 def displayCount(self): print ("Total Employee %d" % Employee.empCount) def displayEmployee(self)…
hasattr(object,name) 判断一个对象中是否有name属性或者name方法返回BOOL值,如果有这个属性的话,就返回TRUE,反之,返回FALSE 需要注意的是name要用括号括起来 >>> class test(): ... name="xiaohua" ... def run(self): ... return "HelloWord" ... >>> t=test() >>> hasattr(…
1. 元数据和反射概念: 有关程序及其类型的数据成为元数据(metadata),他保存在程序的程序集中. 反射这个词儿听起来比较陌生.程序在运行时,可以查看其它程序集或其本身的元数据.一个运行的程序查看本身的元数据的行为成为反射(reflection) 对象浏览器是显示元数据的程序的的一个示例.他可以读取程序集,然后显示所包含的类型及类型的所有特性和成员. 2.举例说明: 比如:我们现在有这样一个需求,已有三个函数fun1,fun2,fun3这三个函数,我们都找到如果我们想调用其中某个函数的时候…
1.描述 hasattr() 函数用于判断对象是否包含对应的属性. 语法 hasattr 语法: hasattr(object, name) 2.描述 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. 语法 setattr() 语法: setattr(object, name, value) 参数 object -- 对象. name -- 字符串,对象属性. value -- 属性值.   3.描述 getattr() 函数用于返回一个对象属性值.…
反射 用字符串来对应其同名的属性或者方法,通过某种方法调用这个字符串来执行方法或者获取属性 网络编程的时候非常好用,是很重要的内容 先看个示例吧: class Teather: dic = { "查看学生信息":"show_student", "查看讲师信息":"show_teacher" } def show_student(self): print("学生:羊驼") def show_teacher(s…
setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性. getattr(object,name,default): 作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值:如果属性name不存在,则触发AttribetError异常或当可选参数default定义时返回default值. getattr也可以返回objec…
getattr(对象,'方法')():从一个对象里面找到里面的方法,,, 传了一个对象,再传一个字符串,就能找到这个字符串的方法 hasattr(对象,'方法') 判断这个对象里面有没有这个方法,返回True和False 用在类里面的使用…
作用: setattr 函数对应函数 getatt(),用于设置属性值,该属性必须存在. 语法: setattr(object, name, value) object -- 对象. name -- 字符串,对象属性. value -- 属性值. 实例: >>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 >>> se…
get() Python 字典 get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法: dict.get(key, default=None) 实例1: d={'A':1,'b':2} m=d.get('C','Bob').lower() z=d.get('C','LUCY').lower() in ['a','B','V',3] print(m,z) # bob False 实例2 MAIL_SERVER = os.environ.get('MAIL_SERVER', 'smtp…
最近看Dive into python第四章自省中提到getattr()函数,作为一个内建函数平时自己没怎么用过所以也不太理解这个函数的一些用法 看了下函数本身的doc getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y. When a default argument is given, it is returne…
getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y. When a default argument is given, it is returned when the attribute doesn't exist; without it, an exception is raised in that case.…
我们知道,为了方便使用,python内置了一系列常用及关键的函数,如type().下面将对这些函数进行逐一分析.解释. Python内置函数表: 1. abs():返回绝对值.如abs(-1)= 1. 2.all():接收一个迭代器,如果迭代器里的所有元素都是True,那么返回True,否则False. 3.any():接收一个迭代器,如果迭代器里有一个元素是True,那么返回True,否则False. 4.ascii():调用对象的__repr__()方法,获得该方法的返回值. 5.bin()…
#!/usr/bin/env python # -*- coding:utf-8 -*- getattr(),hasattr(),delattr(),setattr() #反射:基于字符串的形式去对象(模块)中操作其成员 import commons inp = input("请输入需要进入的页面方法") if hasattr(commons,inp):#检查commons中是否有对应名称的操作成员 func=getattr(commons,inp) #反射 通过getattr在com…
通过字符串的形式,导入模块.使用__import__ In [3]: SYS = __import__("sys") In [4]: SYS.path 如果导入模块在多级文件夹下 __import__("**.**.**", fromlist=True) 通过字符串的形式,去模块中寻找指定函数,并执行 module_name = __import__("module") fun = getattr(module_name, "fun_n…
面向对象 ''''1.面向过程编程   核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么   基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式​   优点:复杂的问题流程化.进而简单化   缺点:可扩展性差​2.面向对象   核心"对象"二字,对象指的是特征与技能的结合体,   基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种   上帝式的思维方式​   优点:可扩展性强   缺点:编程的复杂度高于面向过程    …
一.type()函数 判断基本数据类型可以直接写int,str等: >>> class Animal(object): ... pass ... >>> type(123) <class 'int'> >>> type(') <class 'str'> >>> type(None) <class 'NoneType'> >>> type(abs) <class 'builti…
一.函数介绍 在动态检查对象是否包含某些属性(包括方法〉相关的函数有如下几个: hasattr(object,name):检查 object 对象是否包含名为 name 的属性或方法. getattr(object,name,default=None):获取 object 对象中名为 name 的属性的属性值(属性和函数都叫做属性). setattr(object,name,value):将 object 对象的 name 属性设为 value. class Learn_Python: def…