|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请看以下shell下的代码,我想问的是:教学中说,函数内部改变变量的值,对外部的变量没有影响。可是如果以列表为例,函数内部执行list1= [],不会传递给外部;可是执行list1.append操作,就会传递给外部的变量了,这是什么道理?新手,求助
>>> list1
[50, 50, 50]
>>> def discount(price,rate):
final_price = price*rate
#old_price =50
list1.append(old_price)
print('修改后old_price的值是1',old_price)
return final_price
>>> new_price = discount(100,0.08)
修改后old_price的值是1 1000
>>> list1
[50, 50, 50, 1000]
>>> def discount(price,rate):
final_price = price*rate
old_price =50
list1.append(old_price)
print('修改后old_price的值是1',old_price)
return final_price
>>> new_price = discount(100,0.08)
修改后old_price的值是1 50
>>> list1
[50, 50, 50, 1000, 50]
>>> old_price
1000
>>> def discount(price,rate):
final_price = price*rate
old_price =50
list1=[]
print('修改后old_price的值是1',old_price)
return final_price
>>> list1
[50, 50, 50, 1000, 50]
>>> new_price = discount(100,0.08)
修改后old_price的值是1 50
>>> list1
[50, 50, 50, 1000, 50]
>>>
因为这里的list是一个全局的变量,你的函数执行的时候对它进行了操作,当然会修改它
|
|