鱼C论坛

 找回密码
 立即注册
查看: 3221|回复: 3

[已解决]类和对象问题

[复制链接]
发表于 2022-12-27 11:43:42 | 显示全部楼层 |阅读模式
3鱼币
1、class List(object):
    def __init__(self):
        self.list=[]
2、class List(object):
    def __init__(self,list=[]):
        self.list=list
list 1=List()
list 1.list.append('12')
list 2=List()
print(list 2.list)
为什么同样是在__init__后,第一个打印的list 2是[],第二个打印的list 2是['12']?
最佳答案
2022-12-27 11:43:43
2是共用一个列表
1是每次实例化都新建的列表

最佳答案

查看完整内容

2是共用一个列表 1是每次实例化都新建的列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-27 11:43:43 | 显示全部楼层    本楼为最佳答案   
2是共用一个列表
1是每次实例化都新建的列表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-27 16:30:38 | 显示全部楼层
这是个好问题,引人深思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-27 22:26:01 | 显示全部楼层

1输出的是两个不同的值,2的两个输出值以及形参默认值的id都是相同的,应该list1.list和list2.list都是那个形参默认值[]的索引
# class List(object):
#     def __init__(self):
#         self.list=[]
class List(object):
    def __init__(self,list=[]):
        self.list=list
        print(id(list))
list1=List()
list1.list.append('12')
list2=List()
print(id(list2.list), id(list1.list))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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