mystuff.py包含一个模块。我正在使用python版本3.6。
mystuff = {'donut': "SHE LOVES DONUTS!"}
mystuffTest.py包含此
import mystuff
print (mystuff['donut'])
运行mystuffTest.py时收到的错误如下:
$ python3.6 mystuffTrythis.py
Traceback (most recent call last):
File "mystuffTrythis.py", line 3, in <module>
print (mystuff['donut'])
TypeError: 'module' object is not subscriptable
到目前为止,我还没有在stackoverflow上看到这个确切的错误。谁能解释为什么我收到这个错误?
答案 0 :(得分:6)
import mystuff
正在导入模块mystuff
,而不是变量mystuff
。要访问您需要使用的变量:
import mystuff
print(mystuff.mystuff['donut'])
编辑:也可以直接导入变量,使用:
from mystuff import mystuff
print(mystuff['donut'])
答案 1 :(得分:0)
我收到此错误是因为稍后的from __ import *
语句导入了一个模块,该模块将我的变量绑定到其他东西:
from stuff_a import d
from stuff_b import *
d['key']
在stuff_b.py中,d
已绑定到模块,因此发生错误。经验教训:避免从模块中导入*。