导入模块在PyScripter中工作,但在Python Interpreter中不起作用

时间:2012-04-27 02:00:59

标签: python import

我试图通过用不可读的变量替换可读变量来加密模块(ency0)。加密模块(ency1)在PyScripter中工作,但在Python Interpreter中不起作用。

# ency0 module:
 a,b = 2, 3
 _,__ = a,b


# ency1 module:
 import ency0
 print 5*_+6*__ 
 # expect result = 28 # 

# In Python Interpreter:
 >>>import ency0
 >>>import ency1
 Traceback <most recent call last>:
   File "<stndin>", line 1, in <module>
   File "ency1.py", line 13, in <module>
     print 5*_ + 6*__ 
 NameError: name '_' is not defined
 >>>

在PyScripter中,只要先运行ency0然后再运行ency1,我就可以得到28的正确结果。如果仅运行ency1,则会收到名称为“_”的错误消息。

但是在Python解释器中我总是有一条错误消息:无论事先是否运行ency0,都没有定义名称'_'。

我相信我错过了一些默认包含在PyScripter中的基本语句。

1 个答案:

答案 0 :(得分:1)

这是一个错误,因为你应该访问_ as

ency0._

如果您只想使用_请使用

from ency0 import * 

而不是

import ency0

您可以始终使用dir()打印本地变量列表。