访问字典模块项

时间:2014-11-18 19:03:13

标签: python dictionary

我的工作文件夹是/ scripts /

我创建了一个只包含字典的文件

my_dict = {'sky' : 'blue'}

在该文件中,我可以print my_dict['sky']就好了。

在PyCharm中,我在/ scripts / called / scripts / dictionaries /中创建了一个新文件夹。在里面我有一个名为dictionary_file.py的文件,里面是my_dict。

似乎PyCharm自动生成了一个词典模块。我可以from dictionaries import my_dict很好但是为什么我会尝试做my_dict [' sky']我得到:

TypeError: 'module' object has no attribute '__getitem__'

我确定这是一个愚蠢的noob问题,但我被困住了。在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

from dictionaries.dictionary_file import myDict

print myDict['sky']

肯定会抛出:TypeError: 'module' object has no attribute '__getitem__'因为Python认为myDict在这种情况下是module对象

from dictionaries import dictionary_file

print dictionary_file.myDict['sky']

现在Python知道包字典的模块dictionary_file有一个名为myDict的东西,并在运行时发现myDict是dict,它实现了__getitem__方法。

无论何时尝试通过其密钥访问字典值,python都会调用__getitem__类的dict方法。

您也可以

from dictionaries.dictionary_file import *

print myDict['sky']