鱼C论坛

 找回密码
 立即注册
查看: 1375|回复: 7

[已解决]求助大神两个问题(不相关):append和变量引用

[复制链接]
发表于 2022-2-23 15:38:30 | 显示全部楼层 |阅读模式
20鱼币
1,
>>> a = [1, 3, 5]
>>> a
[1, 3, 5]
>>> a.append(9)
>>> a
[1, 3, 5, 9]
>>> a.append(1)
>>> a
[1, 3, 5, 9, 1]
>>> b = a.append(2)
>>> b
>>> b
>>> type(b)
<class 'NoneType'>

为什么a.append赋值给b,b是NoneType呢?


2,
>>> a = [1, 2, 3]
>>> b = a
>>> a = [4, 5, 6]
>>> b
[1, 2, 3]


>>> a = [1, 2, 3]
>>> b = a
>>> a[1] = 5
>>> b
[1, 5, 3]

一开始a与b都是数值[1, 2, 3]的引用,a is b。按小甲鱼教学一个变都要变,但按照上述实例操作,局部元素赋值不会生成新的内存(a is b),整体赋值生成新的内存(a is not b)。底层逻辑是什么啊?
最佳答案
2022-2-23 15:38:31
1、因为append方法没有返回值 所以b是无类型
2、
>>> a = [1, 2, 3]
>>> b = a
a,b全部指向列表[1,2,3]
但是你重新 a = [4, 5, 6], a就会重新指向 列表[4,5,6]

最佳答案

查看完整内容

1、因为append方法没有返回值 所以b是无类型 2、 a,b全部指向列表[1,2,3] 但是你重新 a = [4, 5, 6], a就会重新指向 列表[4,5,6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 15:38:31 | 显示全部楼层    本楼为最佳答案   
1、因为append方法没有返回值 所以b是无类型
2、
>>> a = [1, 2, 3]
>>> b = a
a,b全部指向列表[1,2,3]
但是你重新 a = [4, 5, 6], a就会重新指向 列表[4,5,6]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 15:48:27 | 显示全部楼层
因为 python 任何函数方法都是有返回结果的,你这里:
 b = a.append(2)
中的:
 a.append(2)
返回的结果是 "None" ,因为当函数没有返回值时,便会返回 "None" !
所以赋值给 b 之后,b 的类型当然就是没有类型 "NoneType" 啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 15:50:29 | 显示全部楼层
懂了吗?不懂可以再问!懂了就给个好评呗!!!

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 15:51:33 From FishC Mobile | 显示全部楼层
第1个问题,a.append()是调用一个方法给列表中添加元素,没有生成任何值,只是一个操作,不是给变量赋值用的,所以返回nonetype
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 15:53:38 From FishC Mobile | 显示全部楼层
第二个问题我也不知道为啥,问小甲鱼吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 16:03:14 | 显示全部楼层
尽然忘记解第二题了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-23 16:07:16 | 显示全部楼层
python爱好者. 发表于 2022-2-23 16:03
尽然忘记解第二题了

第二题讲解
答案部分第 1 题!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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