主要:
import fileb
favouritePizza = "pineapple"
fileb.eatPizza
fileb:
from main import favouritePizza
def eatPizza():
print("favouritePizza")
这是我尝试过的方法,但是没有这样的属性。我查看了其他问题,但这些问题无济于事。
答案 0 :(得分:2)
这是循环依赖的经典示例。 main
导入fileb
,而fileb
需要main
。
即使从理论上讲,您的案件也很难(不可能?)解决。实际上,python导入机制所做的事情甚至比预期的要少-每次从某个模块导入任何内容时,都会读取整个模块并将其导入到全局(每个进程)模块名称空间中。实际上,from module import function
只是语法糖,它使您能够不乱用特定模块(from module import *
)中的所有内容来填充名称空间,但在幕后,它几乎与import module; module.function(...)
相同
从构成/体系结构的角度来看,基本程序结构为:
您可能想以某种方式在favouritePizza
中使用fileb
变量,即在eatPizza
函数中。好的事情是使该函数接受参数,该参数将从使用该参数的任何地方传递:
# fileb.py
def eatPizza(name):
print(name)
并用
调用# main.py
import fileb
favouritePizza = "pineapple"
fileb.eatPizza(favouritePizza)