找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2729|回复: 4

[求助] 关于python小白的一个函数默认参数问题

1

主题

2

帖子

2

积分

贫民

积分
2
howard 发表于 2018-1-15 16:10:19 | 显示全部楼层 |阅读模式
本帖最后由 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,劳烦大神赐教!



2018-01-15 16-05-39屏幕截图.png
回复

使用道具 举报

2

主题

219

帖子

219

积分

版主

Rank: 7Rank: 7Rank: 7

积分
219

热心会员默默耕耘优秀版主

剑心无痕 发表于 2018-1-15 16:38:14 | 显示全部楼层
回复 支持 反对

使用道具 举报

3

主题

19

帖子

19

积分

贫民

积分
19
wxl3322335 发表于 2018-1-15 17:42:41 | 显示全部楼层
def f(a):
    L=[]
    L.append(a)
    return L
这样不就可以了,既然你L是空列表,又何必加载参数里呢?
回复 支持 反对

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
howard  楼主| 发表于 2018-1-15 18:12:38 | 显示全部楼层
剑心无痕 发表于 2018-1-15 16:38
http://www.pythontab.com/html/2017/pythonhexinbiancheng_0816/1164.html

thx!
回复 支持 反对

使用道具 举报

0

主题

102

帖子

102

积分

侠客

积分
102
傻眼貓咪 发表于 2021-8-7 19:25:18 | 显示全部楼层
  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]
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表