Python:字典是用全局方法声明的吗?

Python:字典是用全局方法声明的吗?,python,python-2.7,dictionary,Python,Python 2.7,Dictionary,因此,在一个类下的方法中,我创建了一个包含许多键及其内容的字典。 我想在另一个函数中使用它,我想知道在一个方法中创建的字典是否是全局的,是否可以在另一个字典中使用 如果它不是全球性的,我也想知道是否有办法使它们全球化 默认情况下,字典或方法中声明的任何变量都不是全局的。它们包含在方法的范围内 我写了一个测试脚本来证明这一点。global_test.py: 正在运行的脚本:>python global_test.py Inside method value1 Traceback (most rec

因此,在一个类下的方法中,我创建了一个包含许多键及其内容的字典。 我想在另一个函数中使用它,我想知道在一个方法中创建的字典是否是全局的,是否可以在另一个字典中使用


如果它不是全球性的,我也想知道是否有办法使它们全球化

默认情况下,字典或方法中声明的任何变量都不是全局的。它们包含在方法的范围内

我写了一个测试脚本来证明这一点。global_test.py:

正在运行的脚本:>python global_test.py

Inside method value1
Traceback (most recent call last):
    File "global_test.py", line 11, in <module>
        print "Outside method" + myDict["key1"]
NameError: name 'myDict' is not defined

正如其他人所回避的那样,全局变量几乎从来都不是解决问题的正确方法。

全局变量几乎从来都不是答案。其他函数也是同一类的一部分吗?你可以让事情全球化,但这几乎从来都不是你想做的。你是在说一本班级成员词典吗?模块级字典?只需定义一个字典,将其传递给f,让f返回新字典,并将其传递给g。全局可变变量可能是调试的噩梦,通常不会按照您期望的方式运行,我不建议使用它们,除非它是一些您从未修改过的静态数据。或者,您可以定义一个类,使字典成为该类的成员,并使用self.d从所有函数访问它
Inside method value1
Traceback (most recent call last):
    File "global_test.py", line 11, in <module>
        print "Outside method" + myDict["key1"]
NameError: name 'myDict' is not defined