最近再写python编译器,要用到这个东西
和attr有关的都是对属性进行操作
getattr(object, name[,default])
获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。
需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,
可以在后面添加一对括号
最简单的用法(代码排版我还不会…)
class test():
a = “hhh”
def run(self):
print(“GFRIEND”)
t = test()
getattr(t,‘a’)
‘hhh’
getattr(t,‘b’,1)
1
getattr(t,‘b’,‘not found’)
‘not found’
getattr(t,‘b’)
Traceback (most recent call last):
File “”, line 1, in
AttributeError: ‘test’ object has no attribute ‘b’
如果要调用方法的话,可以在后面加上个括号
getattr(t,‘run’)
<bound method test.run of <test object at 0x0000020E65F73DD8>>
getattr(t,‘run’)()
GFRIEND