0

我试图通过用不可读的变量替换可读变量来加密模块(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 Interpreter 中,我总是有一条错误消息:无论是否提前运行 ency0,name '_' is not defined。

我相信我错过了一些默认情况下始终包含在 PyScripter 中的非常基本的语句。

4

1 回答 1

1

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

ency0._

如果您只想使用_请使用

from ency0 import * 

代替

import ency0

你可能总是使用 dir() 来打印你的局部变量列表。

于 2012-04-27T09:58:58.083 回答