我的工作文件夹是/scripts/
我创建了一个只包含字典的文件
my_dict = {'sky' : 'blue'}
在该文件中,我可以print my_dict['sky']
就好了。
在 PyCharm 中,我在/scripts/中创建了一个名为/scripts/dictionaries/的新文件夹。里面有一个名为 dictionary_file.py 的文件,里面是 my_dict。
PyCharm 似乎自动生成了一个字典模块。我可以 from dictionaries import my_dict
很好,但是为什么我尝试做 my_dict['sky'] 我得到:
TypeError: 'module' object has no attribute '__getitem__'
我确定这是一个愚蠢的菜鸟问题,但我被卡住了。在此先感谢您的帮助。
最佳答案
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 都会调用 dict
类的 __getitem__
方法。
你也可以这样做
from dictionaries.dictionary_file import *
print myDict['sky']
关于python - 访问字典模块项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27001956/