|

楼主 |
发表于 2021-8-14 16:17:27
|
显示全部楼层
class RevealAccess:
def __init__(self,initval = None,name='var'):
self.val = initval
self.name = name
def __get__(self, instance, owner):
print("获取..",self.name)
return self.val
def __set__(self, instance, value):
print("设置值:",self.name)
self.val = value
def __delete__(self,instance):
del self.val
class MyClass:
x = RevealAccess(10,"var 'x'")
y = 5
def __init__(self):
self.x = 'self x'
m = MyClass()
print(m.x)
print("-----------------")
m1 = MyClass()
m1.x = 20
del m1.x
print(m1.x)
还有我删除实例化对象的x属性,类属性x是否会被保留?(运行结果AttributeError: 'RevealAccess' object has no attribute 'val')但我记得类属性好像不会被删除啊,希望大佬解释一下 |
|