我的工作文件夹是/ scripts /
我创建了一个只包含字典的文件
my_dict = {'sky' : 'blue'}
Run Code Online (Sandbox Code Playgroud)
在那个文件中,我可以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__'
Run Code Online (Sandbox Code Playgroud)
我确定这是一个愚蠢的noob问题,但我被困住了.在此先感谢您的帮助.
from dictionaries.dictionary_file import myDict
print myDict['sky']
Run Code Online (Sandbox Code Playgroud)
肯定会抛出:TypeError: 'module' object has no attribute '__getitem__'
因为Python认为myDict module
在这种情况下是一个对象
from dictionaries import dictionary_file
print dictionary_file.myDict['sky']
Run Code Online (Sandbox Code Playgroud)
现在Python知道包字典的模块dictionary_file有一个名为myDict的东西,并在运行时发现myDict是一个实现dict
了__getitem__
方法的.
每当你试图通过它的键访问字典值时,python就会调用类的__getitem__
方法dict
.
你也可以
from dictionaries.dictionary_file import *
print myDict['sky']
Run Code Online (Sandbox Code Playgroud)