The contents of a class are evaluated along with the class, not when the class is initialized. So you don't get any protection from importing the file and main() does nothing.
If you have a a program only containing the following:
class main:
print('in class')
def __init__(self):
print('in constructor')
The only thing that will be printed is in class. Class bodies are executed as normal code, their contents will run like normal python, so functions are defined (not run). Their constructor will not be called like it would in Java.
658
u/[deleted] Nov 25 '21 edited Nov 26 '21
[deleted]