python 特殊方法实例
2017-12-21 19:42
330 查看
import collections from random import choice card = collections.namedtuple('Card',['rank','suit']) #构建一个命名元组 class FrenchDeck: ranks = [str(n) for n in range(2,11)] + list('JQKA') # 创建所有纸牌数A-K suit = '黑桃 方块 梅花 红心'.split() # 创建不同的纸牌花色 def __init__(self): self._cards = [Card(ranks,suit) for suit in self.suits for rank in self.ranks] # 初始化整套扑克 def __len__(self): return len(self._cards) # 获取整套牌的个数 def __getitem__(self,position): return self._cards[position] # 获取特定纸牌 deck = FrenchDeck() # 实例化类 print(len(deck)) # 获取整套牌的数量 52 print(deck[0]) # 获取第一张牌 Card(rank='2',suit='黑桃') choice(deck) # 随机选取其中某张牌 Card(rank='3',suit='梅花') Card(rank='5',suit='红心') #排序 suit_values = dict(黑桃 = 3,方块 = 2,梅花 = 1,红心 = 0) # 定义一个字典保存不同花色对应的权重值 def spades_high(card): # 定义升序函数 rank_value = FrenchDeck.ranks.index(card.rank) # 找到数字的索引值 return rank_value * len(suit_values) + suit_values[card.suit] # 返回索引值*4 +对应的权重值 # 对所有卡牌进行排序 for card in sorted(deck,key = spades_high): print(card)
模拟数值类型
from math import hypot class Vector(object): """docstring for Vector""" def __init__(self, x = 0,y = 0): self.x= x self.y = y def __repr__(self): #得到对象的字符串表现形式 return "Vector(%r,%r)" % (self.x,self.y) def __abs__(self): #用来计算向量的模 return hypot(self.x,self.y) def __bool__(self): # 判断向量实例的布尔值 return bool(abs(self)) def __add__(self,other): x = self.x + other.x y = self.y + other.y return Vector(x,y) def __mul__(self,scalar): return Vector(self.x * scalar,self.y * scalar)
相关文章推荐
- Python进阶学习之特殊方法实例详析
- Python 中特殊变量/方法命名规则说明(特别是私有变量)及使用实例
- 实例解析Python中的__new__特殊方法
- Python3基础 描述符类与自制property方法 __get__,__set__,__delete__方法 讲一个特殊的类的实例指派给另一个类的属性
- Python 中特殊变量/方法命名规则说明(特别是私有变量)及使用实例
- 实例解析Python中的__new__特殊方法
- 实例解析Python中的__new__特殊方法
- python 教程 第十三章、 特殊的方法
- Python几个特殊语法的使用实例
- python学习——特殊方法__str__的用法
- python中的用来定制类的特殊方法的含义
- 使用Python判断IP地址合法性的方法实例
- 二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(一)
- Python三种遍历文件目录的方法实例代码
- Python gzip库函数使用方法及实例
- Python(私有变量)类中的特殊方法
- PYTHON类的特殊方法
- python中的实例方法、静态方法、类方法、类变量和实例变量浅析
- Python 实例方法,类方法和静态方法
- 转 Python 实例方法、@staticmethod和@classmethod