Почему вызовы функций внутри определения класса выполняются при выполнении или импорте модуля? [дубликат]Python

Программы на Python
Ответить
Anonymous
 Почему вызовы функций внутри определения класса выполняются при выполнении или импорте модуля? [дубликат]

Сообщение Anonymous »

Если я вызываю функцию с глобальной областью действия внутри тела класса, даже не создавая экземпляр класса, функция вызывается при выполнении или импорте модуля. Я не могу найти объяснения такому поведению. Почему вызов функции тела класса выполняется, когда класс не упоминается после его определения?
Вот пример (это единственный код в demo.py) :

Код: Выделить всё

def myfunc():
print("Function has been called.")

class Demo:
myfunc()
При выполнении файла неожиданный вывод:

Код: Выделить всё

F:\demo_project\.venv\Scripts\python.exe F:\demo_project\demo.py
Function has been called.
Это происходит в процедурном порядке (как и ожидалось), поэтому, если я создам еще один идентичный класс с именем Demo2 после нескольких вставленных операторов, myfunc() выполнится снова после вставленные операторы были выполнены.

Подробнее здесь: https://stackoverflow.com/questions/792 ... uted-or-im
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»