Given:python: Làm thế nào để tôi chụp một biến được khai báo trong một phạm vi ngoài tổ tiên phi toàn cầu?
def f():
x = 0
def g():
h()
def h():
x += 1
print(x)
g()
>>> f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in f
File "<stdin>", line 4, in g
File "<stdin>", line 6, in h
UnboundLocalError: local variable 'x' referenced before assignment
>>>
Làm thế nào tôi có thể làm cho h
thấy biến x
?
Cảm ơn.
EDIT
nên đã đề cập đến nó trước đó, tôi đang sử dụng Python 2.7.3
có vẻ như hầu hết -global với tôi ... ý tưởng tồi? (nhưng vẫn còn câu hỏi tốt) – Shep
@Shep: bạn muốn một x khác nhau cho mỗi f() gọi, do đó, một biến toàn cầu sẽ không làm. – EOL