Class attribute control

Setting Object Properties
__setattr __ (Self, name, value):
DEF __setattr __ (Self, name, value):
Self .__ dict __ [name] = value
1
2
query object properties
__getattr __ (self, name): When accessing this property, in the absence Find to the corresponding instance attribute is called
__getattribute __ (self, name): is invoked every time you access the properties, more likely to cause infinite recursion case, be careful when using
detailed getattr and getattribute
delete object properties
__delattr __ (self, name):
examples of
class Program (object):

def __init__(self, name, age):
self.name = name
self.age = age

__ __getattribute DEF (Self, name):
# return getattr (Self, name) causes infinite recursion #
# return self .__ dict __ [name ] # cause infinite recursion
return super (Program, self) .__ getattribute __ (name)

def __setattr__(self, name, value):
self.__dict__[name] = value

def __setattr__(self, age, value):
self.__dict__[age] = value

def __getattr__(self, age):
return super(Program, super).__getattr__(age)


if __name__ == '__main__':
p = Program('mike', 22)
print(p.name)
print(p.age)
————————————————

Guess you like

Origin www.cnblogs.com/liyanyan665/p/11408546.html