我的工作文件夹是/ 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问题,但我被困住了。在此先感谢您的帮助。
答案 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']