python 同名属性和实例属性(随便说以下python的反射)
0x00 在使用实例名点(.)属性名访问类属性时,优先访问实例属性
例如:
class Person(object):
name = "seven"
def __init__(self):
self.name = "seven95"
self.age = 21
if __name__ == '__main__':
p = Person()
print(p.name) #输出结果是 seven95
#想要访问类属性时可以使用以下方式
print(Person.name)
0x01 属性访问的特殊方法(以字符串的方式来操作类的属性或者方法)
<1>getattr(object, attr_name)
<2>setattr(object, attr_name, value)
<3>hasattr(object, attr_name)
例如:
print(getattr(Person, "name"))
print(setattr(Person, "name", "sevenli"))
print(hasattr(Person, "name"))