読み取り可能な変数を読み取り不可能な変数に置き換えて、モジュール(ency0)を暗号化しようとしています。暗号化されたモジュール(ency1)はPyScripterで機能しますが、PythonInterpreterでは機能しません。
# 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に含まれているいくつかの非常に基本的なステートメントを見逃したと信じています。