2 つのファイルがあり、1 つは Web ルートにあり、もう 1 つは Web ルートの 1 つ上のフォルダーにあるブートストラップです (ちなみにこれは CGI プログラミングです)。
Web ルートのインデックス ファイルは、ブートストラップをインポートしてそれに変数を割り当て、関数を呼び出してアプリケーションを初期化します。ここまでのすべてが期待どおりに機能します。
これで、ブートストラップ ファイルに変数を出力できますが、変数に値を代入しようとするとエラーがスローされます。割り当てステートメントを取り除いても、エラーはスローされません。
この状況でスコーピングがどのように機能するのか、私は本当に興味があります。変数を出力できますが、代入できません。これはPython 3にあります。
index.py
# Import modules
import sys
import cgitb;
# Enable error reporting
cgitb.enable()
#cgitb.enable(display=0, logdir="/tmp")
# Add the application root to the include path
sys.path.append('path')
# Include the bootstrap
import bootstrap
bootstrap.VAR = 'testVar'
bootstrap.initialize()
ブートストラップ.py
def initialize():
print('Content-type: text/html\n\n')
print(VAR)
VAR = 'h'
print(VAR)
ありがとう。
編集:エラーメッセージ
UnboundLocalError: local variable 'VAR' referenced before assignment
args = ("local variable 'VAR' referenced before assignment",)
with_traceback = <built-in method with_traceback of UnboundLocalError object at 0x00C6ACC0>