繁体   English   中英

如何从另一个Python模块运行整个Python模块?

[英]How to run an entire Python module from another Python module?

我有2个python模块(modA.py和modB.py)。 我想从modB.py运行modA.py。 我怎么做? 如果我将modA.py导入modB.py,那么我可以访问modA.py中的函数和类,但是我如何才能实际执行modA.py(全部)?

这是一个示例案例:

-modA.py-

print "Hello! I'm ModA"

我应该如何编写modB.py,以便在执行modB.py之后获得输出:

“你好!我是modA”

编辑:在注释中提到导入正在执行该模块。 这是非常有用的信息。 感谢那。 但是,有一个小问题。 如果我有:

--- modB.py-

# execute modA.py
import modA.py 

print "some ModB.py stuff here"

# execute modA.py again
import modA.py

在这种情况下,它不会第二次执行modA.py,因为它已经导入了它。 我想也许有办法“取消导入”模块吗? 即使,这似乎也不是一个优雅的解决方案。 Python没有办法简单地执行另一个模块吗?

您必须作为库导入。

modA.py:

def addiction(a,b):
    '''Sum two numbers. (int, int)'''
    return(a+b)

modB.py:

import modA

print(modA.addiction(2,3))

输出:

5

我现在想到的最好的解决方案是

import imp

#first execution of modA.py
import modA.py

print "some ModB.py stuff here"

#second execution of modA.py
imp.reload(modA.py)

该解决方案非常混乱,因为现在您必须跟踪第一次执行模块的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM