为什么内部 class 在 python 中调用

Why inner class called in python

我在声明的地方有函数 class

>>> def a():
...     class A:
...         print "a"
...

当我调用函数时,为什么它打印a

>>> a()
a

print "a" 在定义 class 时执行 - 这在您调用函数时发生。

因为那是你告诉它要做的。在 class 块中编写的代码没有什么特别之处,除了赋值将成为属性并且其中定义的普通函数将被转换为方法。所有其他代码只是...执行。

print "a"在创建class时执行A(不是A的实例),而a()正在创建class.

一般来说,它对设置 class 变量等很有用。