在 Python 中的对象内随机排列列表
Shuffling a list inside an object in Python
我是 python oop 的新手,我正在尝试制作 21 点游戏。我创建了一个名为 cards 的对象,我想在 __init__
函数中洗牌,但是 random.shuffle(self.cards * self.number_of_packs)
不起作用,有什么方法可以在 __init__
函数中进行,或者我必须在 Cards 对象之外进行吗?
class Cards:
def __init__(self):
import random
self.onTable = []
self.cards = ["2 ♥", "3 ♥", "4 ♥..."]
self.number_of_packs = random.randint(2, 5)
self.inPack = random.shuffle(self.cards * self.number_of_packs)
我猜你要找的是
self.inPack = random.sample(self.cards * self.number_of_packs,len(self.cards * self.number_of_packs))
参见 documentation。
random.shuffle
打乱给定的参数,return 什么都不做。
除此之外,建议在任何范围之外的 .py 文件的开头进行导入。
同样从 OOP 的角度来看,有一个名为 Cards
的 class
和一个名为 cards
的成员似乎很不寻常。也许看看 here 以获得一些基本指导。
random.shuffle
对列表参数执行随机播放操作 - 它不是 return 新列表。你需要先生成一个新的列表,然后使用shuffle
来打乱它:
new_list = self.number_of_packs * self.cards
random.shuffle(new_list)
print(new_list)
我是 python oop 的新手,我正在尝试制作 21 点游戏。我创建了一个名为 cards 的对象,我想在 __init__
函数中洗牌,但是 random.shuffle(self.cards * self.number_of_packs)
不起作用,有什么方法可以在 __init__
函数中进行,或者我必须在 Cards 对象之外进行吗?
class Cards:
def __init__(self):
import random
self.onTable = []
self.cards = ["2 ♥", "3 ♥", "4 ♥..."]
self.number_of_packs = random.randint(2, 5)
self.inPack = random.shuffle(self.cards * self.number_of_packs)
我猜你要找的是
self.inPack = random.sample(self.cards * self.number_of_packs,len(self.cards * self.number_of_packs))
参见 documentation。
random.shuffle
打乱给定的参数,return 什么都不做。
除此之外,建议在任何范围之外的 .py 文件的开头进行导入。
同样从 OOP 的角度来看,有一个名为 Cards
的 class
和一个名为 cards
的成员似乎很不寻常。也许看看 here 以获得一些基本指导。
random.shuffle
对列表参数执行随机播放操作 - 它不是 return 新列表。你需要先生成一个新的列表,然后使用shuffle
来打乱它:
new_list = self.number_of_packs * self.cards
random.shuffle(new_list)
print(new_list)