class A(type):
def __init__(self, *args, **kwargs):
print('元类的init')
super(A, self).__init__(*args, **kwargs)
def __new__(cls, name, bases, attrs, **kwargs):
print('元类的new')
return super().__new__(cls, name, bases, attrs, **kwargs)
def __call__(self, *args, **kwargs):
print('元类的call')
return super(A, self).__call__(*args, **kwargs)
class B(metaclass=A):
def __init__(self):
print('B的init')
def __new__(cls, *args, **kwargs):
print('B的new')
return super(B, cls).__new__(cls, *args, **kwargs)
class C(B):
def __init__(self):
print('C的init')
def __new__(cls, *args, **kwargs):
print('C的new')
return super(C, cls).__new__(cls, *args, **kwargs)
b1 = B()
print('b1完成')
b2 = B()
print('b2完成')
c1 = C()
print('c1完成')
c2 = C()
print('c2完成')
02-13
1167
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交