访问字典模块项

Aut*_*tic 1 python dictionary

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

Ant*_*rot 5

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)