1、属性访问
_getattr_
(self
,name
)
定义当用户试图获取一个不存在的属性时的行为
_getattribute_
(self
,name
)
定义当该类的属性被访问时的行为
_setattr_
(self
,name
,value
)
定义当一个属性被设置时的行为
_delattr_
(self
,name
)
定义当一个属性被删除时的行为
class C:
def __init__(self
):
self
.x
='X-man'
c
=C
()
print(c
.x
)
print(getattr(c
,'x','没有这个属性'))
print(getattr(c
,'y','没有这个属性'))
class C:
def __init__(self
,size
=10):
self
.size
=size
def getSize(self
):
return self
.size
def setSize(self
,value
):
self
.size
=value
def delSize(self
):
del self
.size
x
=property(getSize
,setSize
,delSize
)
c
=C
()
c
.x
=1
print(c
.x
)
class C:
def __getattribute__(self
, name
):
print("getAttribute")
return super().__getattribute__
(name
)
def __getattr__(self
, name
):
print("getattr")
def __setattr__(self
, name
, value
):
print("setattr")
super().__setattr__
(name
,value
)
def __delattr__(self
, name
):
print("delattr")
super().__delattr__
(name
)
c
=C
()
c
.x
转载请注明原文地址: https://lol.8miu.com/read-23477.html