これが私のコードです:
def f(x):
def g(n):
if n < 10:
x = x + 1
g(n + 1)
g(0)
f(0)を評価すると、「割り当て前にxが参照されました」というエラーが発生します。
ただし、「x = x + 1」の代わりに「printx」を使用すると、機能します。
gの範囲では、xは「使用オカレンス」としてのみ使用でき、「バインディングオカレンス」としては使用できないようです。問題は、fがxの値だけをgに渡すことだと思います。
私はそれを正しく理解していますか?そうでない場合、「x = x + 1」の左側が参照前に定義されていない理由を誰かが説明できますか?
ありがとう