23 关于python小白的一个函数默认参数问题

本帖最后由 howard 于 2018-1-15 16:24 编辑

问题如图
为什么输出的是:[1][1,2][1, 2, 3]
每次调用f(1),f(2),f(3)的时候,第二个参数都为空,那么每次L不应该都默认初始为空吗,为什么f(1)会对f(2)有影响,L是形参局部变量吧?
本人小白,有JAVA和才c++基础,刚入门python,劳烦大神赐教!



attachments-2021-09-KiyH6LMK614c9546135c6.png

请先 登录 后评论

最佳答案 2021-09-23 22:55

  1. def func(a, myList = None):
  2.     myList = [] # 改成在函數裡面定義
  3.     myList.append(a)
  4.     return myList

  5. print(func(1))
  6. print(func(2))
  7. print(func(3))
复制代码

輸出結果:
  1. [1]
  2. [2]
  3. [3]
复制代码
请先 登录 后评论

其它 3 个回答

瑜彬
def f(a):
    L=[]
    L.append(a)
    return L
这样不就可以了,既然你L是空列表,又何必加载参数里呢?
请先 登录 后评论
ztruth

thx!
请先 登录 后评论
  • 5 关注
  • 1 收藏,633 浏览
  • 欧阳平静 提出于 2021-09-23 22:55

相似问题