Pythonの動的読み込み変数の例の共有

WBOY
リリース: 2016-06-16 08:45:09
オリジナル
1109 人が閲覧しました

ご存知のとおり、プログラムの開始後、各プログラム ファイルはメモリにロードされるため、プログラム テキストが再び変更されても、現在のプログラムの実行には影響しません。プログラムの保護。

ただし、Python のように解釈して実行する言語では、「モジュールインポート変数名」という形式を使用することがあります。この変数がファイル内で直接定義されている場合、これらの変数はプログラムの開始時に変更されます。定義されて値が割り当てられ、その値は動作中に変更されません。実行時にこのモジュールを書き換える予定がある場合、変更された変数値は使用できません。

この問題に対しては、考え方を変えて、このモジュール内の変数を関数で定義すると、プログラム実行時に動的に関数が実行されるので、変数の最新の値を取得することができます。以下に例を示します:

まず、関数を使用しない場合:

コードをコピーします コードは次のとおりです:

#model1.py
p_hello = 'hello world!'

#test1.py
from model1 import p_hello
file = open('model1.py', 'w')
file.write("p_hello = '%s!'"%('こんにちは'))
file.close()
print p_hello

このようにして、test1.py を実行すると、結果は「hello you」ではなく「hello world」のままであり、モジュールのファイルがハード上で書き換えられているにもかかわらず、変数がメモリにロードされたことを示します。ディスク。

次に、関数を使用する場合:

コードをコピー コードは次のとおりです:

#model1.py
def rules():
p_hello = ' hello world!'
return locals()

#test1.py
model1 インポート ルールから
file = open('model1.py', 'w')
file.write('def rules():n')
file.write(" p_hello = '%s!'n"%('hello you'))
file.write(" return locals()n")
file.close()
p_hello = rules()['p_hello']
print p_hello

このように、印刷の結果はこんにちは。実行時に最初に関数が実行され、次に関数を通じて変数が取得されるため、新しい値が取得されます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!