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添加数据。您需要使用全局变量吗?为什么不使用类呢?