Python:随机播放在类初始化程序中不起作用

问题描述 投票:0回答:1

我想编写一个类“SomeClass”,它存储初始化列表的打乱版本。然而,对于我的班级的每个实例,该列表都以完全相同的方式进行洗牌。你能告诉我我做错了什么吗?

import random


class SomeClass:

    def __init__(self, list):
        self.shuffled_list =list
        random.shuffle(self.shuffled_list)


list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
A = SomeClass(list)
B = SomeClass(list)

# Why are both lists the same?
print(A.shuffled_list)
print('\n\n')
print(B.shuffled_list)

 
python class random shuffle
1个回答
1
投票

你的类的所有实例将共享同一个列表对象,你需要复制它。另外,不要使用

list
作为变量名,因为您正在隐藏类型

def __init__(self, values):
    self.shuffled_list = values.copy()
    random.shuffle(self.shuffled_list)
© www.soinside.com 2019 - 2024. All rights reserved.