玩蛇网提供最新Python编程技术信息以及Python资源下载!

为什么我的for循环列表中最后一项总会被覆盖的原因是什么?

1.如题,我真的是没办法了,用尽各种方法list的最后一个数据都会覆盖前面的数据。
2.

class lotto_result_cl:
    def __init__(self, index, spe_p):
        lotto_result_cl.index = index
        lotto_result_cl.spe = spe_p

spe_nums_int =[47, 13, 43]
spe_cl_list = []

for i in range(len(spe_nums_int)):
    spe_cl_list.append(lotto_result_cl(i+1, spe_nums_int[i]))

for i in range(len(spe_cl_list)):
    print spe_cl_list[i].index
    print spe_cl_list[i].spe

3.结果:

3
43
3
43
3
43
但是我要的结果是:
1
47
2
13
3
43

内存分布:

<__main__.lotto_result_cl instance at 0x01724968>
<__main__.lotto_result_cl instance at 0x01724990>
<__main__.lotto_result_cl instance at 0x017249B8>

证明list里面全部对象不是引用了同一个对象

你这个类的init有问题,对之前创造的实例进行了修改,应为

class lotto_result_cl:

def __init__(self, index, spe_p):
    self.index = index
    self.spe = spe_p

即可

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd14081.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月19日 - 15时27分43秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules