Giả sử tôi có mã python sau:Python ghi đè lên các biến trong chức năng lồng nhau
def outer():
string = ""
def inner():
string = "String was changed by a nested function!"
inner()
return string
Tôi muốn có một cuộc gọi đến bên ngoài() để trở về "! Chuỗi được thay đổi bởi một hàm lồng nhau", nhưng tôi nhận được "" . Tôi kết luận rằng Python nghĩ rằng dòng string = "string was changed by a nested function!"
là một khai báo của một biến mới cục bộ để bên trong(). Câu hỏi của tôi là: làm thế nào để tôi nói với Python rằng nó nên sử dụng chuỗi bên ngoài()? Tôi không thể sử dụng từ khóa global
, bởi vì chuỗi không phải là toàn cầu, nó chỉ sống trong một phạm vi bên ngoài. Ý tưởng?
Có thể liên quan: http://stackoverflow.com/q/146359/212218 –