2017-03-31 83 views
0

mystuff.py包含一个模块。我正在使用python版本3.6。TypeError:'模块'对象不可以订购

mystuff = {'donut': "SHE LOVES DONUTS!"} 

mystuffTest.py包括本

import mystuff 

print (mystuff['donut']) 

,我收到当我运行myst​​uffTest.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。任何人都可以解释为什么我得到这个错误?

回答

2

import mystuff正在导入模块mystuff,而不是变量mystuff。为了访问可变你需要使用:

import mystuff 
print(mystuff.mystuff['donut']) 

编辑:它也可以直接输入变量,使用:

from mystuff import mystuff 
print(mystuff['donut']) 
+1

另外'从进口的MyStuff将mystuff'导入变量,然后你可以像你一样直接访问它,也就是'print(mystuff ['donut'])' –

+0

好的,所以从mystuff(module)导入mystuff(变量)。好的,我可以看到这种模式,但是我很难理解为什么这很有道理。谢谢。 – DammondCircuit

+1

@DammondCircuit如果变量&模块具有不同的名称,则更容易理解。即mymodule.myvariable。另外,如果有帮助,请不要忘记接受答案;) –