を満たしている場合でも、私のコード内のステートメント条件が
if len(bootstrap_node_list_recieved_no_dups) >= min_node_to_complete_boot_strap:
print "recieved required nodes"
は基本的に私のように、私はこれだけは一度発生する場合、十分なノードを持っているかどうかを知りたい場合は、私はシンプルを持った後、呼び出したステートメントは無視した場合コードは引き続き実行され、繰り返し実行されるので、このif文は毎回期待通りに実行されます。
ifステートメントが実行されるようにコーディングする方法はありますか?しかし、一度完了した後は再び実行されませんか?
入力が定数ではないため、>=
が必要です。
説明が少し難しいので、これが明確であることを希望します。
更新、
私は提案を実装しようとしたが、エラーに以下
UnboundLocalError: local variable 'flag' referenced before assignment
完全なコードになっています:あなたが変更され、いくつかの低迷変数を持つことができ
flag = False
def number_of_duplicates_in_list():
number_recieved = len(bootstrap_node_list_recieved)
bootstrap_node_list_recieved_before = len(bootstrap_node_list_recieved_no_dups)
" this method works in O(n^2) time and is thus very slow on large lists"
for i in bootstrap_node_list_recieved:
if i not in bootstrap_node_list_recieved_no_dups:
bootstrap_node_list_recieved_no_dups.append(i)
assert len(bootstrap_node_list_recieved_no_dups) >= bootstrap_node_list_recieved_before
if len(bootstrap_node_list_recieved_no_dups) >= min_node_to_complete_boot_strap and flag is False:
print "recieved required nodes"
flag = True
'hasnt_run_yetとlen(...):hasnt_run_yet = False; ... ...? – deceze