即使没有类实例/对象,类中的Print语句也会被执行

时间:2017-11-17 06:34:31

标签: python

我的python文件的内容

class myclass(object):
    def __init__(self):
        pass
    def myfun(self):
        pass
    print ("hello world")

执行文件

的输出
hello world

查询

since I did not create object of class . How's it still able to print "hello world" 

2 个答案:

答案 0 :(得分:3)

类主体在类定义时执行,以及语言的设计方式。

来自9.3.1 Class Definition部分语法:

  

实际上,类定义中的语句通常是函数定义,但允许使用其他语句,有时也很有用。

这就是执行模型在Python中的工作原理,所以对此没什么好说的。

  

根据我的理解......在我们通过创建对象来调用它之前,任何类都无法运行

只是一个误解。这适用于def,即功能块,但不适用于类块。

答案 1 :(得分:2)

它会接到一个电话,就像python那样工作。 您的代码将始终返回输出。

你好世界

class myclass(object):
    def __init__(self):
        pass

    def myfun(self):
        print("hello world")
        pass

如果要避免它,则必须在方法内添加print语句。