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