【发布时间】:2019-08-15 14:06:25
【问题描述】:
我正在编写一个纸牌游戏。如何通过父类将我已经创建的卡片分配给对象?
我试图用这样的方式创建一个新对象:
name = Card(suit1, face1, value1)
但由于我在此之前声明了名称,所以它不能正常工作。
如果我在定义变量 name 后打印名称,则输出为:7Hearts, 7Diamonds, 7Clubs, 7Spades, 8Hearts, 8Diamonds...
我想在 Card 类中创建对象,以便预期输出
print(7Hearts.suit, 7Hearts.face, 7Hearts.value)
是
>>> (Hearts, 7, 7)
或为
print(AceSpades.suit, AceSpades.face, AceSpades.value)
>>> (Spades, Ace, 11)
from random import *
class Card(object):
def __init__(self, suit, face, value):
self.suit = suit
self.face = face
self.value = value
class Deck(Card):
def __init__(self):
suits = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
ranks = range(7, 15)
for rank1 in ranks:
for suit1 in suits:
if rank1 == 11:
face1 = 'Jack'
value1 = 2
elif rank1 == 12:
face1 = 'Queen'
value1 = 3
elif rank1 == 13:
face1 = 'King'
value1 = 4
elif rank1 == 14:
face1 = 'Ace'
value1 = 11
else:
face1 = str(rank1)
value1 = rank1
name = "{0}{1}".format(face1, suit1)
【问题讨论】:
-
Deck不是Card的一种;它是卡片的集合。不要在这里使用继承。 -
不太清楚你在这里问什么。在示例代码中,您没有将变量
name用于任何事情。我也同意@chepner,没有理由让Deck成为Card的子类。这没有任何意义。也许您只是想列出Card对象?
标签: python python-2.7 class