gpt4 book ai didi

python - Python 中的 OOP 纸牌

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:01 27 4
gpt4 key购买 nike

<分区>

我一直在尝试学习 Python 中的面向对象编程,并希望从编写纸牌游戏开始。我想尝试编写几个不同的游戏,所以我想从一个套牌类开始,它可以为我尝试制作的任何游戏调用。

我可以通过函数获得基本行为,但我不知道如何将其放入类中。我首先想出了这个:

class Deck:

def shuffle():
cards = []
suits = ['H', 'D', 'S', 'C']
for suit in suits:
for i in range(1, 14):
cards.append((i, suit))
shuf_deck = random.sample(cards, len(cards))
return shuf_deck

上面的工作,但不是很好。它只是一个函数,一方面,做两件事,创建一副牌并洗牌;看起来这些应该是不同的。对于 __init__ 来说,创建套牌似乎确实是一件好事功能。基于another question ,我把这个放在一起:

class Deck:
def __init__(self):
self.suits = ['Hearts', 'Diamonds,' 'Spades', 'Clubs']
self.values = range(1, 14)
self.cards = []
for Card in itertools.product(self.suits, self.values):
self.cards.append(Card)

def shuffle():
# Not quite sure what to do here yet
return self.cards

deck = Deck()
print(deck)

但这行不通。 __init__ 内的代码函数成功地创建了套牌,但我不能完全“客观化”它。我尝试了几种不同的方法,它要么返回类似 <__main__.Deck object at 0x7f56969f5630> 的内容,我认为这是对象本身的内存地址,或者我得到某种错误、无效语法、属性错误等。我似乎无法从 __init__ 获取数据。 ;当我尝试直接从 __init__ 返回数据时我收到一个错误,每当我尝试从类中的另一个方法获取该数据时,我也会收到错误。有人可以告诉我我缺少什么吗?

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com