展开

关键词

Python - 面向对象编程 - 反射 hasattr、getattrgetattr、delattr

This is done by calling getattr(obj, name) and catching AttributeError. pass返回对象是否具有具有给定名称的属性这是通过调用 并捕获AttributeError来完成的 getattr(obj,name)getattrdef getattr(object, name, default =None): getattr(object, name) -> value Get a named attribute from an object; getattr(x, y) is equivalent pass获取对象指定名称的属性 等价写法 x.y getattr(x , y)当属性不存在,则返回 default 值,如果没有指定 default 就会抛出异常setattrdef setattr(x (blog, name)) # 实例对象-实例属性print(getattr(blog, sum)) # 实例对象-类属性print(getattr(PoloBlog, sum)) # 类对象-类属性print

11130

python的setattr,getattr,hasattr

参考链接: Python setattr()Python的hasattr() getattr() setattr() 函数使用方法详解      hasattr(object, name) 判断一个对象里面是否有 return HelloWord 5 ... 6 >>> t=test() 7 >>> getattr(t, name) #获取name属性,存在就打印出来。  8 xiaohua 9 >>> getattr(t, run)  #获取run方法,存在就打印出方法的内存地址。 10 11 >>> getattr(t, run)()  #获取run方法,后面加括号可以将这个方法运行。 12 HelloWord13 >>> getattr(t, age)  #获取一个不存在的属性。

9400
  • 广告
    关闭

    腾讯云前端性能优化大赛

    首屏耗时优化比拼,赢千元大奖

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    55 - hasattr()、getattr()、setattr()的作用

    请用代码说明hasattr、getattr和setattr的作用 hasattr: 可以判断一个对象是否包含某个属性getattr: 可以获取对象中某一个属性的值setattr: 可以设置对象中某一个属性的值 Person, show): print(存在show方法) person = Person()setattr(person, sex, 男)setattr(person, age, 21)print(getattr (person, sex))print(getattr(person, age))print(getattr(person, name)) person.show() 存在show方法 男 21 ruochen

    7166

    python的内置函数(六)、getattr()

    交流、咨询,有疑问欢迎添加QQ 2125364717,一起交流、一起发现问题、一起进步啊,哈哈哈哈哈 描述getattr() 函数用于返回一个对象属性值。 语法getattr 语法:getattr(object, name)参数object -- 对象。name -- 字符串,对象属性。 实例以下实例展示了 getattr 的使用方法:>>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, bar) # 获取属性 bar 值 1 >>> getattr(a, bar2) # 属性 bar2 不存在,触发异常 Traceback (most recent call last): File , line 1, in AttributeError : A object has no attribute bar2 >>> getattr(a, bar2, 3) # 属性 bar2 不存在,但设置了默认值 3 >>>

    13920

    python: hasattr()、setattr()、getattr()、delattr() 内建函数

    None getattr getattr(object, name) 获取 属性数值。 属性存在时,返回 属性数值;否则根据 默认输出值 返回 或 报 AttributeError。 getattr(t, city) == Nanjingassert getattr(t, run) # getattr 在属性 不存在 时,有 指定默认输出值 的情况下,返回 默认输出值assert getattr(t, year, Not found) == Not found # getattr 在属性 不存在 时,没有 指定默认输出值 的情况下,返回 AttributeErrortry: getattr (t, year)except AttributeError: pass # getattr 和 setattr 的联合使用assert getattr(t, year, setattr(t, year , 2017)) == 2017assert getattr(t, year) == 2017 #####################################################

    39020

    VBA专题12:详解GetAttr函数

    VBA的GetAttr函数将返回文件的基本属性。注意,由于它是一个函数,因此输出一个值;它不是文件对象的属性,不能写入GetAttr来更改文件的属性。同样,也不能使用此函数将文件设为只读或隐藏文件。 输出GetAttr函数输出的究竟是什么呢?唯一的输出是一个等于所有真实属性总和的整数值。对于你的特定输入,无论哪个属性为真,都将出现在该函数的输出中。最简单的情况是文件只满足一个属性。 假设文件myFile是隐藏的,且是该文件唯一的一个属性,从上表中可知,语句GetAttr(myFile)将返回2。更复杂一点的是隐藏的系统文件。 此时,必须在总和中包含4和2,因此输出为6:GetAttr(myFile) =vbHidden + vbSystem = 6。隐藏目录的值是多少? 要使用GetAttr函数,不需要更多信息,但如果想了解如何分解返回的总和数值,看下面的讲解。按位与分解那么我们如何测试一个数字是否真的是和的一部分呢?可以通过使用按位与来实现。

    12820

    Python中dir,hasattr,getattr,setattr,vars的使用

    Python提供了dir,hasattr,getattr,setattr,vars等函数,可以帮助我们操作和使用对象的属性。 print(getattr(wo, name))# print(getattr(wo, friend))print(getattr(wo, friend, me))shop = getattr(wo, 如果是对象没有的属性,我们可以设置默认值,则getattr会返回这个默认值。getattr获取对象的方法时,会返回一个方法对象,我们可以像执行函数一样执行这个方法。? setattr(wo, height, 1.66)print(getattr(wo, height))setattr(wo, home, sz)print(getattr(wo, home))运行结果: 这个函数的实现方法是调用getattr(object, name) 函数,看看是否抛出AttributeError异常。

    13530

    isinstancetypeissubclass的用法,反射(hasattr,getattr,setattr,delattr)

    2.反射(hasattr,getattr,setattr,delattr)反射就是通过字符串来操作类或者对象的属性反射本质就是在使用内置函数,其中反射有以下四个内置函数: 1. hasattr:判断一个方法是否存在与这个类中 2. getattr:根据字符串去获取obj对象里的对应的方法的内存地址,加()括号即可执行 3. setattr:通过setattr将外部的一个函数绑定到实例中 4. delattr:删除一个实例或者类中的方法 1.hasattr用法: print(hasattr(对象,对象的方法或者特征),)后面内容必须为字符串的格式,如果有返回True,没有返回False2.getattr用法: print(getattr

    13320

    Python中getattr、__get__、__getattr__和__getattribute__的区别

    .>>> f = Foo(10)>>> getattr(f, x)10>>> f.x10>>> getattr(f, y, bar)bar_ __getattr _ __object.

    1.4K20

    Python学习 Day 10 str iter getitem getattr call

    ... return 'Student object (name: %s)' % self.name

    18430

    Python的hasattr() getattr() setattr() 函数使用方法详解

    .>>> t=test()>>> hasattr(t, name) #判断对象有name属性True>>> hasattr(t, run) #判断对象有run方法True>>>getattr(object >>> class test():... name=xiaohua... def run(self):... return HelloWord...>>> t=test()>>> getattr(t, xiaohua>>> getattr(t, run) #获取run方法,存在就打印出方法的内存地址。 >>> getattr(t, run)() #获取run方法,后面加括号可以将这个方法运行。 HelloWord>>> getattr(t, age) #获取一个不存在的属性。 >>> class test():... name=xiaohua... def run(self):... return HelloWord...>>> t=test()>>> getattr(t,

    39440

    Python hasattr() 函数 python中hasattr()、getattr()、setattr()函数的使用

    http://www.runoob.com/python/python-func-hasattr.html

    7100

    python3--面向对象的进阶

    从A的命名空间里找一个属性,直接就可以找到这个属性的值# 通俗点就是需要获取谁(func),就是getattr(A,func) getattr(类,属性名)print(getattr(A, role)) a = A()  # 实例化一个对象a# 从A的命名空间里面找一个方法,找到的是这个方法的内存地址,如果要执行这个方法,在后面加()print(getattr(a, func))getattr(a,  func)() #getattr如何让用户输入一个类中的方法名,并执行ret = input(>>>:)getattr(a, ret)()  # getattr(a, ret)实际上获取的就是func方法的内存地址 (a, func)()  # 使用getattr获取名字对应的值,名字加()就表示执行这个方法print(getattr(a, money))  # 使用getattr获取名字对应的值执行结果>>funcpy3study.com getattr(对象名,名字)模块使用模块中的名字导入模块 getattr(模块名,名字)从自己所在的模块中使用自己名字import sysgetattr(sys.modules,名字)getattr一定要和

    13120

    Python学习笔记之Python对象反射、类反射、模块反射

    python中的一切事物都是对象(都可以使用反射)一、getattr对象获取class Manager: role = 管理员 def __init__(self,name,sex,phone,mail -----)role = getattr(manager,role)print(role) print(---对象获取类属性(可以设置默认值)-----)import loggingif hasattr = getattr(manager, role1, roleDefault) print(role)类获取class Manager: role = 管理员 def createClass(self) )f(Manager) f = getattr(Manager,createClass)f(m) role = getattr(Manager,createStu)role() #对象获取类属性role method(): print(---method---)import sys print(sys.modules)print(getattr(sys.modules,aa))f = getattr(

    2.2K40

    Python 函数作为参数传递

    func, **kargs):     func()     print test_func_lambda: %s % kargs def test_func_getattr():     func = getattr , testA)     func(1, 2) class TestGetattr():     aa = 2a     def get_attr(self):         print test getattr print_text(self):         print print text     def print_string(self):         print print string #getattr 方法,传入参数是对象和该对象的函数或者属性的名字,返回对象的函数或者属性实例     obj = TestGetattr()     func = getattr(obj, get_attr) #getattr print callable(getattr(obj, aa))     output(string)

    80220

    Python功能之反射

    ret = home.user    print retif url == homepasswd:    ret = home.passwd    print retelse:    print 404#getattr 、setattr、delattr、 hasattr#找到home文件,将内容加载到内存,然后getattr、setattr、delattr、 hasattr 对home中断函数进行操作#由于函数在没有执行之前 (home,Foo)print clss_name = getattr(cls,static_name)print s_namec_show = getattr(cls,show)print c_shows_show =getattr(cls,static_show)print s_showcla_show = getattr(cls,class_show)print cla_showimport homecls =  getattr(cls,Foo)obj=cls()#实例化一个对象objname = getattr(obj,name)print namehome.py #!

    12330

    Python27 反射

    反射:通过字符串映射或修改程序运行时的状态、属性、方法, 有以下4个方法1.getattr:2.hasattr:判断一个对象里是否有对应(相同名称)字符串的方法3.setattr4.delattrclass %self.name) d = Dog(XiaoBai)choice = input(>>:).strip() if hasattr(d,choice): func = getattr(d,choice %self.name) d = Dog(XiaoBai)choice = input(>>:).strip() if hasattr(d,choice): func = getattr(d,choice setattr(d,choice,None) AA = getattr(d,choice) #需要先通过getattr获取这个choice的值 print (AA) 执行结果:>>:ageNoneclass #需要先通过getattr获取这个choice的值 print (AA) 执行结果:>>:ageNone #print (d.age)None #print (AA)

    18520

    Python反射

    # 输入函数or方法的名称func_name = input(请输入函数名称>>>) # 导入模块dd = __import__(mod_name) # 导入模块中的方法target_func = getattr : module commons has no attribute f1f1f1执行获取到的函数>>> target_func = getattr(commons, f1)>>> target_func >>> target_func() F1通过设置默认值可以避免获取不到方法时报错# 设置一个默认值为None>>> target_func = getattr(commons, f1f1f1, None )>>> target_func>>>通过getattr获取模块中的全局变量>>> import commons>>> getattr(commons, Blog_Url, None)https:yw666 (commons, as) >>> aa = getattr(commons, as)>>> aa()asdelattr(object, name)根据字符串的形式去一个对象中删除成员>>> getattr

    13920

    python摸爬滚打之day18----

    isinstance(xxx, MethodType) )3、反射   通过字符串的形式从对象中动态的获取成员. hasattr(obj,str) ----> 判断obj中是否有str成员(最常用)  getattr __init__(self,name):11 self.name = name12 def wan(self):13 print(玩得舒服)14 p = Sclass(防滑链)15 16 print(getattr (p,name))17 print(getattr(p,son))18 print(getattr(Sclass,son))19 print(getattr(p,base))20 print(getattr (Base,base))21 22 print(getattr(p,wan)) # 从对象里找,找到的是wan()方法的内存地址23 print(getattr(Sclass,wan)) # 从类里找, 找到的是wan()函数的内存地址.24 print(getattr(p,wan)())25 26 # 如果想反射到别的.py文件,就必须导入 import py文件名 ,getattr(py文件名.类名

    18030

    python程序调用函数的过程是什么_Python根据字符串调用函数过程解析

    参考链接: Python getattr()1.使用 getattr(object, name, default=None) 获取属性FM5免费资源网 # -*- encoding=utf-8 -*-  Test: def __init__(self): self.name = 莉莉 self.age = 18 if __name__ == __main__: test = Test() name = getattr (test, name) # 获取属性 print(name) age = getattr(test, age) # 获取属性 print(age) none = getattr(test, none, 获取不存在的属性,需要添加 default,否则抛异常 print(none) 运行FM5免费资源网 莉莉FM5免费资源网 18FM5免费资源网 noneFM5免费资源网 FM5免费资源网 2.使用 getattr  print(年龄是:{}.format(self.name)) return self.name if __name__ == __main__: test = Test() get_name = getattr

    4800

    扫码关注云+社区

    领取腾讯云代金券