我在编程方面很擅长。 我有三个文件, 第一个是“main.python”, 第二个是“driver.python”, 第三个是“global_var.python”,它仅用于初始化全局变量。
main.python
import global_var
import driver
global_var.init()
driver.fun()
print(shinchan)
driver.python
import global_var
def fun():
shinchan ="hello python"
global_var.python
def init():
global shinchan
运行此操作后,我收到错误
File "main.py", line 13, in <module>
print(shinchan)
NameError: name 'shinchan' is not defined
据我所知,在driver.python中,python一共创建了一个新变量“shinchan”,它与“global_var.python”中定义的全局变量“shinchan”无关,我正在尝试实现。
我们不能在这三个不同的文件中使用相同的变量。
请帮帮我。
答案 0 :(得分:0)
如果您想访问shinchan
中的main.py
,则需要更改导入语句或将其作为global_var
的属性引用。
因此要么将导入更改为
from global_var import shinchan
或将通话更改为
print(global_var.shinchan)
您可能不希望在访问global_var.init()
之前致电global_var
,所以您可能想要做的是:
global_var.py
shinchan = '' # or whatever you want it to be initially
global_var.shinchan = 'hello world'
但你可能不想这样做。全局变量快速混乱,这就是为什么你应该不惜一切代价避免它们。
如果您想从driver.py
获取信息并将其存储在main.py
中的变量中,您应该从函数中获取所需的数据。所以像这样:
main.py
import driver
shinchan = 'hi'
shinchan = driver.getNewShinchan()
driver.py
def getNewShinchan():
return 'hello world'