zoukankan      html  css  js  c++  java
  • 流畅的Python---第一章 Python数据模型

    1.利用简单的例子来展示实现 __getitem__ __len__ 这2个特殊方法

      定义一个字牌类

    #encoding:utf-8
    import  collections
    Card = collections.namedtuple('Card',['rank','suit'])
    
    class FrenchDeck:
        ranks = [str(n) for n in range(2,11)] + list('JQKA')
        suits = 'spades diamonds clubs hearts'.split()
    
        def __init__(self):
            self._cards = [ Card(rank,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]

      利用 namedtuple方法  得到一个字牌的对象

    beer_card = Card('7', 'diamonds')
    print(beer_card)       #Card(rank='7', suit='diamonds')
    print(beer_card.rank)  #7
    print(beer_card.suit)  #diamonds
    
    #可以用 len() 函数来查看一叠牌有多少张:
    deck = FrenchDeck()
    print(len(deck))  #52
  • 相关阅读:
    3.3 直方图处理与函数绘图
    光头强
    考试代码模板
    【2015初赛】预备
    NOIP2018 模拟题
    NOIP2017 模拟赛
    【解题报告】树形DP入门
    【解题报告】区间DP
    【解题报告】树形背包
    二分刷题单
  • 原文地址:https://www.cnblogs.com/augustyang/p/9848925.html
Copyright © 2011-2022 走看看