美文网首页
第一章 python数据模型

第一章 python数据模型

作者: 腹肌少年 | 来源:发表于2017-12-08 10:52 被阅读0次

1、扑克牌

import collections
Card = collections.namedtuple('Card',['rank','suit'])
class Frenchdeck:
    ranks = [str(i) for i in range(2,11)]+list('JQKA')
    suits = ['黑桃','红心','梅花','方块']
    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]
suit_values={'黑桃':3,'红心':2,'梅花':1,'方块':0}
deck=Frenchdeck()
def cards_values(card):
    rank_value=Frenchdeck.ranks.index(card.rank)
    return rank_value*len(suit_values)+suit_values[card.suit]
for card in sorted(deck,key=cards_values,reverse=True):
    print (card)

2、以上collection,sorted需注意。

sorted(iteration,key=Function)

Function 返回一个值作为比较依据
3、Special method,also called magic method or dunder method.


图片.png
图片.png

4、自定义向量类型

class Vector:
    def __init__(self,x=0,y=0):
        self.x=x
        self.y=y
    def __add__(self,other):
        x=self.x+other.x
        y=self.y+other.y
        return Vector(x ,y)
    def __abs__(self):
        return self.x+self.y
    def __repr__(self):
        return 'Vector(%r,%r)'% (self.x , self.y)

5 、why len() not .len?
len()直接调用基于C的内置方法而不是自定义方法,但是通过对len的定义又可以自定义某个类的len(),从而在效率和可更改性上达到平衡,而且一统的模式更加符合美学,即Zen of Python.

相关文章

  • Python数据模型

    Python数据模型理解好Python的数据模型才是真正理解了Python这门语言Python数据模型其实就是对象...

  • 流畅的Python

    第一章 Python数据模型魔术方法(magic method)或者说双下方法(dunder method)表示特...

  • 第二章 魔法函数

    一. 什么是魔法函数 二. python的数据模型以及数据模型对python的影响(数据模型也叫魔法函数) 三. ...

  • Fluentpython 第 1 章 Python 数据模型 折

    Fluentpython 第 1 章Python 数据模型 折腾纸牌 数据模型其实是对 Python 框架的描述,...

  • python-01基础

    python入门 The Zen of Python 数据模型 在Python中数据被抽象成对象,Python程序...

  • fluent_python_part_2

    Fluent Python 第一章 数据模型 主要是一些魔术方法的使用 第二章 序列 针对大量数据,使用列表占用大...

  • python 魔法方法

    内置魔法方法参见:官网:Python数据模型Python 魔术方法指南 ——稍微有点乱 Python魔法方法指南...

  • 第一章 Python数据模型

    迭代 集合类 属性访问 运算符重载 函数和方法的调用 对象的创建和销毁 字符串表示形式和格式化 管理上下文 1.1...

  • 第一章 Python数据模型

    此笔记用于记录《流畅的Python》一书的学习要点,与各位Python爱好者分享,以后每周至少更新两章内容,完全是...

  • 第一章 python数据模型

    1、扑克牌 2、以上collection,sorted需注意。 Function 返回一个值作为比较依据3、Spe...

网友评论

      本文标题:第一章 python数据模型

      本文链接:https://www.haomeiwen.com/subject/dezsixtx.html