我需要调用if __name__ == '__main__'
,在一个模块Module 1
中调用几个类,在函数function1
中调用第二个模块中的类, Module 2
。
我无法在def main()
中使用Module 1
- 解决方案而不是if __name__ == '__main__'
,因为该模块在{{1}中有多个类和函数连接到Class_1
}}仅适用于Module 1
和print('I am:', __name__)
。
所以我的问题是如何在if __name__ == '__main__':
if __name__ == '__main__'
的{{1}} Class_1()
function1
中调用main Class_2()
?
第1单元
Module 2
第2单元
print('I am:', __name__)
class Class_1():
....code...
# calling everything in the module that
if __name__ == '__main__':
答案 0 :(得分:4)
if __name__ == '__main__'
主要用于制作单个python脚本可执行文件。例如,您定义了一个执行某项操作的函数,您可以通过导入并运行它来使用它,但是您还希望在使用python module1.py
运行python脚本时执行该函数。
对于你问的问题,我能想到的最好的是你想要在调用“module2.py”时运行“module1.py”中定义的函数。这将是这样的:
### module1.py:
def main():
# does something
...
if __name__ == '__main__':
main()
### module2.py:
from module1 import main as main_from_module_one
if __name__ == '__main__':
main_from_module_one() # calling function main defined in module1
答案 1 :(得分:1)
if __name__...
的整点是指当模块作为脚本执行时才需要的东西,即它是否恰好是不从另一个类导入。所以不,你不需要这样做。
你解释为什么你不能把东西放到一个函数中是没有意义的;这正是你应该做的。