关于函数内部对变量操作的问题
请看以下shell下的代码,我想问的是:教学中说,函数内部改变变量的值,对外部的变量没有影响。可是如果以列表为例,函数内部执行list1= [],不会传递给外部;可是执行list1.append操作,就会传递给外部的变量了,这是什么道理?新手,求助{:5_110:}>>> list1
>>> 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
>>> 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
>>> 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
>>> new_price = discount(100,0.08)
修改后old_price的值是1 50
>>> list1
>>>
因为这里的list是一个全局的变量,你的函数执行的时候对它进行了操作,当然会修改它 谢谢回复,可是我没有声明是全局变量啊?另外我两次定义的函数除了一个用了=[],一个用了append方法外,其它没什么区别啊,能否进一步指点?谢谢
页:
[1]