
函数调用 return func 和 return result 有什么区别吗?
函数调用 return func 和 return result 运行结果是一样的,这两种写法的区别是什么?
def func(list): list[0] = 4 return func # 和 return list 有什么区别吗? if __name__ == '__main__': list = [1,2,3] func(list) print(list) 1 Trim21 2022 年 8 月 6 日 你这个例子里不需要函数的返回值,你就是不 return 都可以... |
2 reter 2022 年 8 月 6 日 via Android 返回 func 可以链式调用? func(list)(list1)(list2) |
3 zhuweiyou 2022 年 8 月 6 日 你这个例子跟 return 半毛钱关系都没有 |
4 xiri 2022 年 8 月 6 日 via Android 我寻思着你这个例子也用不上 retrun 的东西啊 |
5 zxCoder 2022 年 8 月 6 日 ????? 啥问题这是 |
6 JounQin 2022 年 8 月 6 日 via iPhone 这就是 Python 程序员? |
7 AV1 2022 年 8 月 6 日 我怀疑又是 X-Y 问题 |
8 markgor 2022 年 8 月 6 日 我不熟 python , 但是我记得有变量域存在的吧? 1->list = [1,2,3] 2->func(list) 2.1->list[0] = 4 2.2->return func 3->print(list) 果:[1,2,3] 因 func 中修改 list 不致外部的 list (量域) 所以 func 最後 return 什,都不外部的 list 改 而什是 return func ,那是了式用,如 2# 所的。 |
9 learningman 2022 年 8 月 6 日 via Android 如果这是 python 的话,你还把默认的 list shadow 掉了 |
10 ispinfx 2022 年 8 月 6 日 via iPhone 这个问题有点离谱 |
11 snw 2022 年 8 月 6 日 via Android @markgor Python 的 list 是 mutable ,所以函数传参时传的是引用,所以在函数内对 list 的操作会影响到被传入的 list ,所以结果是[4,2,3] |
13 t2jk4000 2022 年 8 月 6 日 建议楼主好好跟着书上的例子学吧,现在先别想这些有的没的 |
14 Osk 2022 年 8 月 6 日 @snw 哈哈, 想到了 python 的神坑之一: def func(a=[]): ... lz 你好, 这种写法可能会埋下 bug, 稍微好一点点的写法是, func 中接收到传入的 list 后, 对源列表进行一次复制, 使用 new_list = list.copy() 或 new_list = list[:] 都行, 然后对 new_list 进行操作. 原因楼上解释了 |
15 muzuiget 2022 年 8 月 7 日 实际上 func 运行了个寂寞。 |