我正在学习python中的元类。我无法理解一件事。假设我们有一个代码:
class Meta(type):
print('meta')
class User(metaclass=Meta):
def __init__(self):
print('__init__ User')
print(1)
x = User()
我无法弄清楚为什么代码按执行顺序执行。不应该完全相反,即 首先执行命令print('__init__ User')
,然后执行命令,然后print(1)
才执行命令print('meta')
?为什么命令以我指定的相反顺序执行?我想澄清这一点。
元类与它无关。
类内部的所有代码,但在其方法之外,在声明类时,在创建对象之前执行。按顺序,您首先声明了类
Meta
- 显示“元”,User
下面声明了类 - 显示了 1,然后创建了一个对象 - 显示了"__init__ User"
。