为什么课程在未启动时会被"调用"? - Python

SCE*_*SCE 5 python python-2.7

例如,在以下代码中:

class test:
    print "Hi"
Run Code Online (Sandbox Code Playgroud)

Python会自动打印'hi'.很抱歉,如果这是一个显而易见的问题,但我无法找到为什么Python会这样做,除非启动"测试"对象.*几个月前我刚刚开始编程,Python是我的第一语言,所以请不要怜悯我.

Mar*_*ers 7

你正在建立一个班级; 类的主体作为构建定义的函数执行.该"函数"的本地名称空间构成了构成该类的属性集.请参阅class声明文档.

方法类主体没有被执行; 像函数定义一样,你需要先调用它们.但是如果你没有先调用类体,你根本不知道该类有什么方法.

同样,导入模块时,会执行模块中的任何顶级代码,以形成模块命名空间.如果你放入print "Hi"一个模块,它也会立即执行.