当你发现自己的才华撑不起野心时,就请安静下来学习吧。

Personal site

↑点击传送

hasattr()、getattr()、setattr()函数的使用__getattr__方法,__setattr__方法

点取值取不到的时候触发__getattr__方法
点赋值触发__setattr__方法

hasattr()

class A():
name = 'python'
def func(self):
return 'A()类的方法func()'

hasattr(A, 'name')#类A中有name属性返回True
True

、getattr()、

class A():
name = 'python'
def func(self):
return 'Hello world'

getattr(A, 'age')    # 属性age变量不存在则报错

getattr(A, 'age', 20) #如果没有类没有该属性则返回默认值20
20

getattr(A(), 'func')() #如果调用类方法则在后面加()
'Hello world'

setattr()函数的使用

class A():
name = 'python'
def func(self):
return 'Hello world'

setattr(A, 'name', 'java')#如果类本来就有name属性则修改
getattr(A, 'name')
'java'

setattr(A, 'age', 20)#如果类本来没有age属性增加
getattr(A, 'age')
20

原文链接

posted @ 2020-07-08 15:41  Joab-0429  阅读(225)  评论(0编辑  收藏  举报