我想编写一个类“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)
你的类的所有实例将共享同一个列表对象,你需要复制它。另外,不要使用
list
作为变量名,因为您正在隐藏类型
def __init__(self, values):
self.shuffled_list = values.copy()
random.shuffle(self.shuffled_list)