[Python] Llamando si __name__ == '__main__': en un módulo de una función en otro módulo


Answers

El objetivo de if __name__... es que es solo para cosas que solo se necesitan cuando el módulo se ejecuta como un script, es decir, exactamente si no se está importando de otra clase. Entonces no, no necesitas hacer esto.

Tu explicación de por qué no puedes poner cosas en una función no tiene sentido; eso es exactamente lo que deberías hacer.

Question

Necesito llamar if __name__ == '__main__' , que llama a varias clases en un módulo, Module 1 , en una función, function1 , que está en una clase en un segundo módulo, Module 2 .

No puedo usar def main() - solution en el Module 1 lugar de if __name__ == '__main__' , ya que el módulo tiene varias clases y funciones conectadas a Class_1 en el Module 1 que solo funciona con print('I am:', __name__) y if __name__ == '__main__':

Entonces mi pregunta es cómo puedo llamar main: if __name__ == '__main__' de Class_1() en function1 en Class_2() en el Module 2 ?

Módulo 1

print('I am:', __name__)

class Class_1():
   ....code...

# calling everything in the module that
if __name__ == '__main__':

Módulo 2

# if __name__ == '__main__' from Module 1 should be called in function 1


class Class_2():
   .... code..

   def function1:
    --- calling main if __name__ == '__main__' from Module 1