我试图通过用不可读的变量替换可读变量来加密模块(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中的基本语句。
答案 0 :(得分:1)
这是一个错误,因为你应该访问_ as
ency0._
如果您只想使用_请使用
from ency0 import *
而不是
import ency0
您可以始终使用dir()打印本地变量列表。