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

时间:2018-07-18 18:15:52

标签: python

我有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没有办法简单地执行另一个模块吗?

2 个答案:

答案 0 :(得分:0)

您必须作为库导入。

modA.py:

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

modB.py:

import modA

print(modA.addiction(2,3))

输出:

5

答案 1 :(得分:0)

目前我能想到的最佳解决方案是

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)

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