Python 我正在尝试使用导入模块中的函数更新全局变量。两个文件都在同一个文件夹中
我得到以下错误:Python 我正在尝试使用导入模块中的函数更新全局变量。两个文件都在同一个文件夹中,python,Python,我得到以下错误: # zzz.py def Put(mess): global Dict global Lot print(mess) Dict = {} Lot.append(Dict) # www.py from zzz import Put Dict={} Lot=[Dict] Put('abcde') print(Lot) 如果我将Putmess函数放在www.py文件中,它就可以正常工作 我做错了什么?全局变量不能做John Gordon评论
# zzz.py
def Put(mess):
global Dict
global Lot
print(mess)
Dict = {}
Lot.append(Dict)
# www.py
from zzz import Put
Dict={}
Lot=[Dict]
Put('abcde')
print(Lot)
如果我将Putmess函数放在www.py文件中,它就可以正常工作
我做错了什么?全局变量不能做John Gordon评论中提到的您想要做的事情,但您可以使用类作为解决方法,如下所示: 在模块中定义类,并使用全局变量添加init函数
NameError: name 'Lot' is not defined
然后导入类并使用其中的变量和函数
class zzz_class():
def __init__(self):
self.Dict = {}
self.Lot = []
# zzz.py
def Put(self, mess):
print(mess)
self.Lot.append(self.Dict)
abcde
[{},{}]全局变量不能像John Gordon的评论中提到的那样做您想要做的事情,但是您可以使用类作为解决方法,如下所示: 在模块中定义类,并使用全局变量添加init函数
NameError: name 'Lot' is not defined
然后导入类并使用其中的变量和函数
class zzz_class():
def __init__(self):
self.Dict = {}
self.Lot = []
# zzz.py
def Put(self, mess):
print(mess)
self.Lot.append(self.Dict)
abcde
[{},{}]将变量声明为全局变量只能在单个模块中工作。如果另一个模块想要访问它,您必须导入它。正如@JohnGordon所说,您需要从zzz导入LOT添加数据。您需要使用全局变量吗?为什么不使用类呢?将变量声明为全局变量只能在单个模块中工作。如果另一个模块想要访问它,您必须导入它。正如@JohnGordon所说,您需要从zzz导入LOT添加数据。您需要使用全局变量吗?为什么不使用类呢?