为什么在python中调用内部类

Nil*_*esh 0 python scope function inner-classes

我有声明类的功能

>>> def a():
...     class A:
...         print "a"
...
Run Code Online (Sandbox Code Playgroud)

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

>>> a()
a
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 5

因为这就是你告诉它的事情.class除了赋值之外的块中编写的代码没有什么特别之处,它将成为属性,并且将定义的正常函数转换为方法.所有其他代码只是...执行.


小智 5

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

通常,它对设置类变量等很有用.