三个用例:
1)Dict interests
可以访问
interests = {}
def get_interests():
print('interests:', interests) # interests: {}
interests['somekey'] = 123
print('interests:', interests) # interests: {'somekey': 123}
get_interests()
2)无法访问列表interests
interests = []
def get_interests():
print('interests:', interests) # UnboundLocalError: local variable 'interests' referenced before assignment
interests += [123]
print('interests:', interests)
get_interests()
3)如果是列表,如果我只是print
,则可以使用
interests = []
def get_interests():
print('interests:', interests) # interests: []
# interests += [123]
# print('interests:', interests)
get_interests()
我错过了什么?
答案 0 :(得分:4)
在列表中使用.append()
进行尝试:
interests = []
def get_interests():
print('interests:', interests) # UnboundLocalError: local variable 'interests' referenced before assignment
interests.append(123)
print('interests:', interests)
get_interests()
你看到这种行为的原因是,通过使用+=
运算符,你基本上告诉python:interests = interests + [123]
- 它在范围内声明了一个名为“interest”的新变量该函数而不是修改全局变量“interest”。
通过使用.append()
函数,您不是要创建新变量,而是修改全局变量。