Webから新しい変数値を更新する必要のあるモジュールが1週間に1回あります。これらの変数値をファイル&に配置すると、起動時にそれらの値がロードされます。あるいは、単純な解決策は、単にコードを自動更新することです。自己更新コード?
これはPythonで可能ですか?このような
何か...
def self_updating_module_template():
dynamic_var1 = {'dynamic var1'} # some kind of place holder tag
dynamic_var2 = {'dynamic var2'} # some kind of place holder tag
return
def self_updating_module():
dynamic_var1 = 'old data'
dynamic_var2 = 'old data'
return
def updater():
new_data_from_web = ''
new_dynamic_var1 = new_data_from_web # Makes API call. gets values.
new_dynamic_var2 = new_data_from_web
# loads self_updating_module_template
dynamic_var1 = new_dynamic_var1
dynamic_var2 = new_dynamic_var2
# replace module place holders with new values.
# overwrite self_updating_module.py.
return
彼らはいつも同時に変わるのですか?彼らは何のために使われていますか?アプリケーション内でどこで利用可能にする必要がありますか?これはあまりにも広すぎますが、最初に私が見ているのは、リクエストが行われたときに、データが1週間以上経過しているかどうかを確認し、そうであれば新しいデータをフェッチしてから要求。私はconfig [ここ](https://github.com/textbook/atmdb/blob/master/atmdb/client.py)と同様のことをします。 – jonrsharpe
データによってコードを動的に変更することは非常に珍しいことです。実行中のコードからデータを分離する必要があります。動的にインポートして実行できるコードがある場合は、Subprocessesを調べて、プログラムが別のプログラムを呼び出せるようにすることができます。モジュールを動的に書き直す場合は、コードを再度実行する必要があります。そのため、書き込み後にプログラムを再度呼び出す必要があります。その後、書き直されたハードコーディングされた値は、Python実行時に実際の変数に割り当てられます。しかし、これは非常にエキゾチックなやり方です。 – levilime
コードを更新しないでください。いくつかの変数の値は、可能性があります。これを行う最善の方法は、ドキュメントがロードされてから10日後にサーバーに新しい値を問い合わせることができる場合に実行されるカウンタを使用することです。しかし真剣に私は、ドキュメントがロードされるたびにapiを呼び出し、常に最新の値を取得します。あなたの達成しようとしていることを伝えるのは難しいですが、それは私がやることです。データが非常に重くてお金を節約したいのでない限り。 – MadeInDreams