尽管应该导入变量,但出现“未定义名称X”的异常。
from config import *
from utils import *
say_hello()
from config import *
def say_hello():
print(config_var)
from utils import *
config_var = "Hello"
尝试运行“ main.py”:
回溯(最近通话最近): 在第3行的文件“ main.py”中 问好() 在say_hello中的第3行,文件“ C:\ Users \ utils.py” 打印(config_var) NameError:名称“ config_var”未定义
这里发生了什么?为什么无法从utils.py访问some_var?
答案 0 :(得分:0)
您正在util中导入config,在config中导入util,这将导致此错误(创建交叉循环)。从config.py中删除from utils import *
,然后尝试执行此操作。
在main.py中,您不需要导入from config import *
,除非您直接在main()中使用config中的变量
答案 1 :(得分:0)
您还应该导入config.config_var,因为此变量属于该特定模块
答案 2 :(得分:0)
您要创建许多import语句,也许可以尝试以下操作,但是如果要在utils.py中传递参数,则还需要在utils.py中定义一个参数。
在utils.py中,由于您要打印出适当的值,因此需要传递参数。在config.py中,您要定义一个值。然后,在main.py中(如前所述)在这种情况下使用通配符“ *”并不完全适合,然后为了调用相应的函数,您需要通过其文件名来对其进行寻址
在utils.py中:
def say_hello(config_var):
print(config_var)
在config.py
中config_var = "Hello"
然后在main.py
import config as cn
import utils as ut
ut.say_hello(cn.config_var)
查看该线程以了解如何编写python模块How to write a Python module/package?