今、私はグローバル宣言について知っていますが、なぜエラーが発生しているのか(関数内でカウントされていますが、後で呼びます)、回避する方法は考えられません。なぜ私は変数を定義した後にf
関数を呼び出していますが、count
にエラーがありますか?このコードスニペットはどのように書き直すことができますか? 助けてくれてありがとう!変数参照エラー:この作業を行うにはどうしたらいいですか?
def f(x):
if count < x:
<some irrelevvant code>
for i in range(10):
count = 1
f(3)
<some more irrelevant code>
私の謝罪は、私の元々の質問は明らかではないと思います。私は再帰的に私はcount2
はways
での関数の引数として定義されていないことができ、機能ways
を呼び出しておりますので
def ways(l, h):
if count2 < h:
for v in A: #A is a globally defined list
if u != v:
if check(t, v):
count2 += 1
t = v
ways(l, h)
else:
count1 += 1
count1 = 0
for u in A:
count2 = 1
t = u
ways(9, 3)
:私が述べた「無関係なコードは、」実際にので、私は私の全体のコードをアップロードしています、関連するかもしれません。 Count2
は、u
forループが実行されるたびに1にリセットする必要がありますが、ways
が呼び出されるたびにリセットする必要はありません。
明示的に 'count'を' f'に渡します。 + f(3、count) – jonrsharpe
+ f(3、count) –
'f(x)'を定義する前に 'count = 1'を実行することはできますが、これをしないと' count'を 'f 'Explicitは暗黙よりも優れているから明示的に.' –