Python:如何启用被调用文件来访问调用文件中定义的函数?

时间:2016-05-24 01:44:29

标签: python

我有两个程序文件: a.py b.py 。前者称后者,但后者希望能够访问前者定义的某些功能。我似乎无法使其正常工作。

举一个具体的,简单的例子:

a.py

def onemore(x):
    return x+1

import b
print "result is:", b.twomore(5)

b.py:

def twomore(x):
    import a
    return a.onemore(x)+1

运行a.py:

所需的行为
  

结果是:7

运行a.py的实际行为:

  

结果是:结果是:7

     

7

我尝试了一堆不同的导入结构,检查了这里发布的其他答案,但没有任何运气。以上实际上是我能够实现的最好结果,但它似乎运行了两次,这对我的实际用例是不允许的。

我认识到这里进口的循环性质,但这肯定是一个可以解决的问题?

这样做的实际动机是:我试图从程序中调用辅助例程,需要访问程序中定义的基本功能。

2 个答案:

答案 0 :(得分:3)

您的代码

print "result is:", b.twomore(5)

在执行import a时运行。如果直接从控制台运行文件,请尝试将其放在仅运行它的块中。

if __name__ == "__main__":
    print "result is:", b.twomore(5)

应该修复它,但如果可以的话,通常应该尽量避免循环依赖。

答案 1 :(得分:0)

你应该只从a导入一个(从导入一个),否则导入a也运行打印表达式