たら、コードを実行することはできませんそうでなければならない。は、私は一度だけのコードの塊を実行したいので、私はこのようなグローバル変数を使用する唯一の
私はFunction Not Changing Global Variableここで同様の問題を見ましたが、提示ソリューションは私のために動作するようには思えません。
たら、コードを実行することはできませんそうでなければならない。は、私は一度だけのコードの塊を実行したいので、私はこのようなグローバル変数を使用する唯一の
私はFunction Not Changing Global Variableここで同様の問題を見ましたが、提示ソリューションは私のために動作するようには思えません。
それが正しいノーであるとは、私のために完璧に働いている:
unopened = False
result = "hello"
def make_request():
global unopened
unopened = True
if unopened:
print ("Writing in result file")
result_file = open("resultFile.txt", "w")
result_file.write(result)
result_file.close
make_request()
はどのように任意のポイントは、それをテストする直接、その後 '' true'にunopened'設定とするがあるかもしれませんか? –
あなたは、そのインスタンスが何回彼らを追跡する呼び出し可能なクラスを作ることによって、グローバル変数を使用しないように試みることができます呼ばれています
のようにテストされたclass requester():
def __init__(self,cap = 1):
self.cap = cap
self.called = 0
def __call__(self):
if self.called < self.cap :
#code to be executed at most cap times goes here
print("requester called")
self.called += 1
:
make_request = requester()
for i in range(10):
make_request()
print("\nNow call three times:\n")
make_request = requester(3)
for i in range(10):
make_request()
出力:あなたはrequester
の複数のインスタンスを作成(またはそのコンストラクタに1よりも高い数値を渡す場合
requester called
Now call three times:
requester called
requester called
requester called
さて、リクエストを複数回行うことが原因となる唯一のものがあります)
編集時:thisの回答には、デコレータとして実装されている同様の考えが含まれています。自身によって
、そのコードは(脇構文エラー;あなたはmake_request' 'の後に括弧が欠落している)の罰金を探します。 [最小限の、完全な、そして*検証可能*例](http://stackoverflow.com/help/mcve)を投稿してください。 – chepner
さらに、 'result_file.close'の代わりに' result_file.close() 'を呼び出す必要があるので、ファイルは閉じません。 – mvelay
コード自体は何度も繰り返されることはありません。それは複数回繰り返されます....このコードをどのように呼び出すのですか? – JustGreat