Python的getattr()】的更多相关文章

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" Instance = A() pri…
@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…
hasattr(object, name)作用:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的).示例: >>> hasattr(list, 'append') True >>> hasattr(list, 'add') False getattr(object,name,default): 作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性…
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # 反射使用 import sys class WebServer(object): def __init__(self,host,port): self.host = host self.port = port def start(self): print("Server is starting...&…
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…
判断一个对象里面是否有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…
setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性. getattr(object,name,default): 作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值:如果属性name不存在,则触发AttribetError异常或当可选参数default定义时返回default值. getattr也可以返回objec…
getattr(object, name[, default]) getatt() 函数用于返回一个对象属性值.object 对象.name 字符串,对象属性.object 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError. 实例: >>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 >>…
getattr(object, name[,default]) 获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选.需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,可以在后面添加一对括号. class test(): name = "botoo" def __init__(self, age): self.age = age def say(self): print("i am",self.…
最近看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…
感觉到刷题宝有一个好处,也许也不是好处,它的答案必须是真正输出的值,也就是说应该输出字符串aaaa的时候,答案必须写成界面上返回的值,即'aaaa'.有利于真正记忆返回值类型,但是....太繁琐了 1.getattr():python自省函数,用于查看某对象是否具有某种属性并返回属性值或者末字符串,参数格式(一个对象, 属性名称字符串, 不存在时输出的字符串),举个例子: class A: def __init__(self): self.name = 'hahahaha' a = A() pr…
1. abs() 获取绝对值 >>> abs(-10) 10 >>> a = -10 >>> a.__abs__() 10 2. all()   参数为可迭代对象,迭代对象为空时,返回True.如果迭代对象的所有元素都为真,那么返回True,否则返回False. all(['python',123]) --->True all([]) --->True all([0]) --->False all(" ") ---…
Allison是Dropbox的工程师,在那里她维护着世界上最大的由Python客户组成的网络.在Dropbox之前,她是Recurse Center的引导师, … 她在北美的PyCon做过关于Python内部机制的演讲,并且她喜欢奇怪的bugs.她的博客地址是akaptur.com. Introduction Byterun是一个用Python实现的Python解释器.随着我在Byterun上的工作,我惊讶并很高兴地的发现,这个Python解释器的基础结构可以满足500行的限制.在这一章我们会…
在开始之前,我们先限定下python解释器的意思.当讨论Python的时候,解释器这个词可以用在不同的地方.有的时候,解释器指的是Python Interpreter,也就是你在命令行交互界面上输入python的时候.有的时候人们或多或少的交换使用python和python解释器来表明python从执行到结束的的过程.在本章中,解释器有更加确切的意思:python执行过程中的最后一步. 在解释器完成之前,python还有三个步骤需要执行:词法分析,语法解释,编译.最后这些步骤讲项目的源代码从文本…
import arcpy import sysimport osimport string reload(sys) sys.setdefaultencoding("utf8")scratchWS = arcpy.env.scratchWorkspacearcpy.AddMessage("默认地理数据库路径:" + scratchWS)scriptPath      = sys.path[0];arcpy.AddMessage("系统路径:" +…
1.异常基础 python在运行过程中,程序解释机制会测试代码,如检测不通过则会抛出异常. try: aa = 10 bb = ' cc = aa + bb except Exception as e: print('error:',e) #output输出异常,数字不能与字符向加 error: unsupported operand type(s) for +: 'int' and 'str' try: aa = 10 bb = '10' cc = aa + bbexcept TypeErro…
getattr是python里的一个内建函数 getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载. python里面跟getattr相关的有hasattr,setattr,delattr  ,那么我们通过下面的例子,来详细的说说他们的用法. class Xiaorui: def __init__(self): self.name = 'xiaorui' def setName(sel…
python 内建函数setattr() getattr() setattr(object,name,value): 作用:设置object的名称为name(type:string)的属性的属性值为value,属性name可以是已存在属性也可以是新属性. getattr(object,name,default): 作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值:如果属性name不存在,则触发AttribetError异常或当可选参数default定…
在python的官方文档中:getattr()的解释如下: getattr(object, name[, default]) Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For examp…
用import关键字导入模块的几种方式: #python是自解释的,不必多说,代码本身就是人可读的 import xxx from xxx import xxx from xxx import xx1,xx2,xx3 from xxx import * import xxx as xxx from xxx import xxx as xxx 序列解包赋值: x,y,z = 1,2,3 #右侧1,2,3实际是一个(1,2,3)的tuple,然后解包出来再分别赋值 x,y = y,x #同理,交换赋…
常用的函数:callable():如果所给参数是可调用的,返回True 不可调用返回Fasle.这里指的是否能调用说的是方法.类方法等有doc string的东西,一个单纯的字符串等就不算了. import string #之前用过的join方法 #punctuation给出了可用的标点符号,他实际上就是一个字符串,里面给出了有效可用的标点符号. print string.punctuation print callable(string.join), callable(string.punct…
一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的过程无法执行等 python异常是一个对象,表示错误或意外情况 (1)在python检测到一个错误时,将触发一个异常 python可以通常异常传导机制传递一个异常对象,发出一个异常情况出现的信号 程序员也可以在代码中手动触发异常 (2)python异常也可以理解为:…
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"…
1. hasattr(object, name) 判断object对象中是否存在name属性,当然对于python的对象而言,属性包含变量和方法:有则返回True,没有则返回False:需要注意的是name参数是string类型,所以不管是要判断变量还是方法,其名称都以字符串形式传参:getattr和setattr也同样; >>> >>> class A(): name = 'python' def func(self): return 'A()类的方法func()'…
在python的官方文档中:getattr()的解释如下: ? 1 2 3 getattr(object, name[, default])   Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object's attributes, the result is the value of that attribute.…
反射机制 先看看我对Java中反射机制的通俗理解:反射之中包含了一个“反”的概念,所以要想解释反射就必须先从“正”开始解释,一般而言,当用户使用一个类的时候,应该先知道这个类,而后通过这个类产生实例化对象,但是“反”指的是通过对象找到类. 而对于Python,如果我们需要动态导入模块,并且动态地访问对象中的属性和方法,怎么做?请看下面的代码. s = "lib.test.commons" m1 = __import__(s) # 这样仅仅动态导入了lib模块 m2 = __import…
Python getattr() 函数  Python 内置函数 描述 getattr() 函数用于返回一个对象属性值. 语法 getattr 语法: getattr(object, name[, default]) 参数 object -- 对象. name -- 字符串,对象属性. default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError. 返回值 返回对象属性值. 实例 以下实例展示了 getattr 的使用方法: >>>class…
getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.  传入不同的字符串,调用的方法不一样. 原型:getattr(对象,方法名) 举个栗子: pyMethod类下定义了三个方法,getattr(pyMethod(),'out%s'%str)()   传入的方法名不同,调用不同的方法.些处方法名为字符串. 这样的话,想想是不是用途很多,我可以把方法名配置到文件中,读取时使用getattr动态去调用. #coding=utf-8 class pyMethod(…
一.反射:用字符串数据类型的变量名来访问这个变量的值 上代码^_^ # class Student: # ROLE = 'STUDENT' # @classmethod # def check_course(cls): # print('查看课程了') # # @staticmethod # def login(): # print('登录') # # 反射查看属性# # print(Student.ROLE)#普通方法# # print(getattr(Student,'ROLE'))## #…
一.今日内容总结 1.反射 使用字符串数据类型的变量名来操作一个变量的值. #使用反射获取某个命名空间中的值, #需要 #有一个变量指向这个命名空间 #字符串数据类型的名字 #再使用getattr获取值, #如果变量能直接获取结果 #如果是函数,只能拿到内存地址,加上括号就是执行 #使用类名反射: 静态属性.类方法.静态方法 #使用对象名反射: 对象属性.绑定对象方法 #使用模块名反射: 变量.函数.类 #在自己所在文件中反射全局变量: getattr(sys.modules[__name__]…