为什么在甚至没有创建对象时执行类中的print语句?

use*_*200 1 python class python-3.x

当我运行下面的代码时,输​​出是"你好".

但是,该print语句是该类的一部分pl,我从未创建过该类的实例pl,那么为什么print语句被执行?

class pl:
    def __init__(self,a,b):
        self.aa=a
        self.bb=b
    print("hello")
Run Code Online (Sandbox Code Playgroud)

tim*_*geb 7

类主体(甚至是嵌套类主体)在导入时执行(与函数或方法相反).

演示脚本:

class Upper:
    print('Upper')
    class Mid:
        print('Mid')
    def method(self):
        class Low:
            print('Low')
        print('method')
Run Code Online (Sandbox Code Playgroud)

输出:

$ python3
>>> import demo
Upper
Mid
Run Code Online (Sandbox Code Playgroud)