【发布时间】:2020-08-27 11:17:09
【问题描述】:
我最近遇到了一个全球性问题,我不知道 python 中的这种行为:
# declaring some global variables
variable = 'peter'
list_variable_1 = ['a','b']
list_variable_2 = ['c','d']
def update_global_variables():
"""without using global line"""
variable = 'PETER' # won't update in global scope
list_variable_1 = ['A','B'] # won't get updated in global scope
list_variable_2[0]= 'C' # updated in global scope surprisingly this way
list_variable_2[1]= 'D' # updated in global scope surprisingly this way
update_global_variables()
print('variable is: %s'%variable) # prints peter
print('list_variable_1 is: %s'%list_variable_1) # prints ['a', 'b']
print('list_variable_2 is: %s'%list_variable_2) # prints ['C', 'D']
为什么list_variable_2 在全局范围内更新而其他变量没有?
【问题讨论】:
-
变量没有更新。变量所指的对象发生了变异.