0

読み取り可能な変数を読み取り不可能な変数に置き換えて、モジュール(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に含まれているいくつかの非常に基本的なステートメントを見逃したと信じています。

4

1 に答える 1

1

_ としてアクセスする必要があるため、これはエラーです。

ency0._

_だけを使用したい場合は、使用してください

from ency0 import * 

それ以外の

import ency0

常に dir() を使用して、ローカル変数のリストを出力できます。

于 2012-04-27T09:58:58.083 に答える