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

时间:2013-06-02 18:09:37

标签: python python-2.7

例如,在以下代码中:

class test:
    print "Hi"

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

1 个答案:

答案 0 :(得分:7)

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

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

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