pero no entiendo por qué me dices que no use Main.
if __name__ == '__main__':
para python main siempre es el global scope del script llamado... no estás llamando a main solo estás verificando que sea main, eso se usa para asegurarte que el script sea llamado directamente y no que sea llamado como un import de otro script (cosa que dudo que pase accidentalmente)
cada .py lo hago creando un nuevo Módulo de tipo Clase.
no abuses de las clases... python es un lenguaje orientado a clases y a protocolos, para el los script importados ya son clases (en casi todo aspecto)... recuerda que python no es java o c# no se comporta igual... el codigo en python siempre es codigo dinamico y ejecutable
archivo importable.py
print(__name__) #como se llama
a = 1
b = 2
c = 3
def hola():
print(a+b)
def otro():
c = 5
archivo principal.py
print(__name__) #como se llama
import importable as pi #podemos renombrar
pi.hola()
print(pi.a)
print(pi.b)
print(pi.c)
pi.otro() #debería renombrar a c, pero como no es una clase no lo hace
print(pi.c)
print(c) #error c pertenece a pi, aquí no hay ningun c
Mi idea con la creación de Main era tener un Bootstrapper para que el programa siempre arranque desde esa clase/función
siempre lo hará, sin embargo si puedes agregarlo para evitar que sea importado desde otro archivo