没有 return 也能修改数据?
def addinterest(balance, rate):for each in range(len(balance)):
balance = balance * (1+rate)
return
def test():
amount =
rate = 0.05
addinterest(amount, rate)
print(amount)
if __name__ == '__main__':
test()
运行结果:
所以,为什么呢?return 不返回任何东西,也没有变量进行接收{:10_245:} 列表,字典,集合啥的都是帮奇葩..
它们不分全局变量和局部变量之差的,在函数内也可以改变别的地方的变量
比如:
def func(lst, val):
lst.append(val)
def func2():
a = []
for i in range(5):
func(a, i)
print(a)
func2() 本帖最后由 逃兵 于 2021-3-30 18:34 编辑
列表,字典,集合都是可变容器
return 是返回值,用来返回数据
而列表的 .append()
集合的 .add()
等等
都属于容器的方法
这个函数没有return,所以他依旧返回None。
只是他调用容器,让容器自己去做了一些事情,使得容器内部发生了变化。(append() remove())
这跟函数本身有没有返回值没关系
在python中,字符串和元组是不可变的 {:10_263:}不是纯函数呗
页:
[1]