这是一个简单的代码,我要寻找的是学习在尝试将show方法重构为不适合修改的方法时可以实现的最佳实践。因此将来如果他们要求我输入具有链类型值的新卡,则无需修改此方法。
class Card:
def __init__(self, suit, value):
self.suit = suit
self.value = value
def show(self):
if self.value == 1:
value = "Ace"
elif self.value == 11:
value = "Jack"
elif self.value == 12:
value = "Queen"
elif self.value == 13:
value = "King"
else:
value = self.value
return f'{value} of {self.suit}'
答案 0 :(得分:0)
对我来说,代码看起来不错,但如果您愿意,可以使用字典:
value = {1: "Ace", 11: "Jack", 12: "Queen", 13: "King"}.get(self.value,self.value)
答案 1 :(得分:0)
您可以使用字典来模拟switch-case语句:
def show(self):
value = {
1: 'Ace', 11: 'Jack',
12: 'Queen', 13: 'King'
}.get(self.value, self.value)
return f'{value} of {self.suit}'
这里发生的是,我们正在创建一张卡数字值到卡名称的映射。创建此对象后,我们立即使用dict.get
方法尝试基于self.value
检索相应的名称。第二个参数是回退,以确保如果查找失败,我们将使用当前值。