|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
class C:
z = 5
def __init__(self):
self.x = 5
C.y = 5
def __getattr__(self, name):
print(1)
return super().__getattr__(name)
def __getattribute__(self, name):
print(2)
return super().__getattribute__(name)
def __setattr__(self, name, value):
print(3)
super().__setattr__(name, value)
def __delattr__(self, name):
print(4)
super().__delattr__(name)
只返回一个3,
那么请问:类属性初始化时,是在哪里?
调用的又是什么魔法方法?
谢谢^_^
那么请问:类属性初始化时,是在哪里?
调用的又是什么魔法方法? 在这个类的元类里。 - >>> class TestMeta(type):
- def __init__(self,name,base,attr,/):
- print(name,base,attr,sep='\n')
- super().__init__(name,base,attr)
-
- >>> class Test(metaclass=TestMeta):
- a=6
-
- Test
- ()
- {'__module__': '__main__', '__qualname__': 'Test', 'a': 6}
复制代码
看到那个 'a': 6 了吗?那就是类属性的初始化。
|
|