在学习了namedtuple的几种使用后,今天小编为大家带来一个有意思的教学,那就是用namedtuple做一副扑克牌。提到玩游戏方面的学习,相信很多小伙伴都非常感兴趣,有一些喜欢牌类游戏的可要集中精神看以下的内容了。代码方面不是很复杂,但是我们出错就不能进行后续的游戏了。下面我们就看看如何用namedtuple做扑克牌吧。
Python中实现 len方法的对象,可以直接通过len(object)调用,实现getitem方法的对象,是一个可迭代对象,该对象可以进行for循环遍历,可以通过[index]索引操作。
这里,通过命名元组namedtuple与特殊方法结合,实现一副扑克牌。
这里扑克牌只有两个属性,一个是面值大小,一个是牌色(黑桃,方块,梅花,红心)
所以,创建一个扑克牌的类只需要一句话,
Card = collections.namedtuple('Card', ['牌值', '牌色'])
现在创建一副扑克牌对象。
class FrenchDeck(): # ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A'] ranks = [str(i) for i in range(2, 11)] + list('JQKA') # ['黑桃', '方块', '梅花', '红心'] suits = '黑桃 方块 梅花 红心'.split(' ') def __init__(self): self._cards = [Card(rank, suit) for rank in self.ranks for suit in self.suits] def __len__(self): return len(self._cards) def __getitem__(self, position): return self._cards[position]
补充:len()函数语法
len(object)
函数返回一个大于0的int型整数,表示对象的项目个数。
以上就是我们用namedtupl做扑克牌的方法了,想要进一步玩扑克牌类游戏的,也可以找寻一下在python中玩牌的方法。