我有两个程序文件: a.py 和 b.py 。前者称后者,但后者希望能够访问前者定义的某些功能。我似乎无法使其正常工作。
举一个具体的,简单的例子:
def onemore(x):
return x+1
import b
print "result is:", b.twomore(5)
def twomore(x):
import a
return a.onemore(x)+1
结果是:7
结果是:结果是:7
7
我尝试了一堆不同的导入结构,检查了这里发布的其他答案,但没有任何运气。以上实际上是我能够实现的最好结果,但它似乎运行了两次,这对我的实际用例是不允许的。
我认识到这里进口的循环性质,但这肯定是一个可以解决的问题?
这样做的实际动机是:我试图从程序中调用辅助例程,需要访问程序中定义的基本功能。
答案 0 :(得分:3)
您的代码
print "result is:", b.twomore(5)
在执行import a
时运行。如果直接从控制台运行文件,请尝试将其放在仅运行它的块中。
if __name__ == "__main__":
print "result is:", b.twomore(5)
应该修复它,但如果可以的话,通常应该尽量避免循环依赖。
答案 1 :(得分:0)
你应该只从a导入一个(从导入一个),否则导入a也运行打印表达式