找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 181|回复: 3

[求助] 如何理解这个变量问题 print已注释

1

主题

1

帖子

1

积分

贫民

积分
1
ecnuwjn 发表于 2019-11-18 22:33:03 | 显示全部楼层 |阅读模式
def func(ls=[]):
    ls.append(1)
    return ls
a = func()
print(a)   ### [1]
b = func()
print(a,b) ### [1, 1] [1, 1]


回复

使用道具 举报

0

主题

16

帖子

16

积分

贫民

积分
16
edo 发表于 2019-11-20 20:31:34 | 显示全部楼层
>>> def func(l=[]):
...     print(id(l))
...     l.append(1)
...     print(id(l))
...     return l
...
>>> a = func()
4315026312
4315026312
>>> id(a)
4315026312
>>> b = func()
4315026312
4315026312
>>> id(b)
4315026312
回复 支持 反对

使用道具 举报

0

主题

16

帖子

16

积分

贫民

积分
16
edo 发表于 2019-11-20 20:38:16 | 显示全部楼层
>>> c = []
>>> c[:] = func()[:]
4315026312
4315026312
>>> id(c)
4315026248
>>>
回复 支持 反对

使用道具 举报

0

主题

16

帖子

16

积分

贫民

积分
16
edo 发表于 2019-11-20 20:46:53 | 显示全部楼层
>>> d = []
>>> d[:] = func([2])[:]
4315248136
4315248136
>>> id(d)
4315248392
>>> id([])
4315026376
>>> id([])
4315026376
>>> id([2])
4315026376
>>>
回复 支持 反对

使用道具 举报

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

本版积分规则

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