为什么要运行这个类?

为什么要运行这个类?

问题描述:

我一直在玩我的代码一段时间,这不是一个错误或任何东西,但我只是不明白为什么 class main() 不需要初始化就运行......

I've been playing with my codes a little for a while, and this one is not about a bug or anything, but i just don't understand why class main() runs without needing to initialize it...

class vars():
    var1 = "Universe!"
    var2 = "Oscar!"
    var3 = "Rainbow!"

class main():
    print (vars.var1)
    def __init__(self):
        print (vars.var2)
        print (vars.var3)

是的,非常感谢您的阅读.

But yes, thank you very much for reading.

与许多其他语言不同,类主体是 Python 中的可执行语句,并在解释器到达 class 行时立即执行.当你运行这个程序"时:

Unlike many other languages, class body is an executable statement in Python and is executed immediately as the interpreter reaches the class line. When you run this "program":

class Foo:
    print("hey")

它只是打印hey"而没有创建任何 Foo 对象.

it just prints "hey" without any Foo object being created.

同样适用于函数定义语句def(但不适用于函数体).当你运行这个:

The same applies to the function definition statement def (but not to function bodies). When you run this:

def foo(arg=print("hi")):
    print("not yet")

它会打印hi",但不会打印not yet".

it prints "hi", but not "not yet".