2014-12-01 2 views
2

Мне было интересно, почему, когда я запускаю скрипт python, как показано ниже, интерпретатор печатает печать внутри класса, даже если класс не был создан.Почему Python входит в класс, даже если он не создан.

AFAIK, python сначала считывает то, что является глобальным, тогда он переходит к основному методу и оттуда он может вызывать другие объекты.

print "BRAVO 1" 

class Foo(): 

    print "BRAVO 2" 

    def __init__(self): 
     print "BRAVO 3" 

print "BRAVO 4" 

if __name__ == "__main__": 
    print "BRAVO MAIN" 

печатает

BRAVO 1 
BRAVO 2 
BRAVO 4 
BRAVO MAIN 
+0

Кажется, что Python создает объекты класса не лениво, когда это необходимо, но при загрузке модуля. – Trilarion

ответ

3

Python создаст объект класса при выполнении кода, и как таковой он будет печатать «BRAVO 2», даже если вы не создали ни одного экземпляра Foo.

Если вы должны были создать экземпляр Foo с foo = Foo() то распечатает бы «BRAVO 3», так как это находится внутри функции __init__ которая призвана инициализации.

+0

Благодарим вас за четкий ответ. – user2282064

Смежные вопросы