如果在一个模块中从另一个modu中的函数调用

2024-05-19 17:07:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要调用if __name__ == '__main__',它调用一个模块中的几个类,Module 1,在一个函数中,function1,在第二个模块的一个类中,Module 2。在

我不能在Module 1中使用def main()-solution代替if __name__ == '__main__',因为该模块有几个与Module 1中的Class_1相连的类和函数,它们只与print('I am:', __name__)和{}一起工作。在

所以我的问题是如何调用main:if __name__ == '__main__'来自function1中的Class_2()中的if __name__ == '__main__'?在

模块1

print('I am:', __name__)

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

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

模块2

^{pr2}$

Tags: 模块函数nameifmaindefcodeam
2条回答

if __name__...的要点是,它只用于当模块作为脚本执行时才需要的东西,也就是说,如果从另一个类导入的是而不是。所以不,你不需要这么做。在

你不能解释为什么你不能解释。在

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

相关问题 更多 >