python 資料模型

2021-09-13 13:12:12 字數 1006 閱讀 8928

#!/usr/bin/env python

# coding=utf-8

import collections

card = collections.namedtuple('card', ['rank', 'suit'])

class frenchdeck:

"""通過實現特殊方法利用python資料模型的好處:

1. 作為你類的使用者, 他們不必去記住標準操作的各式名稱('怎麼得到元素的總和?.size()還是.length()還是別的什麼')

2. 可以更加方便的利用python的標準庫,比如random.choice函式,從而不用重**明輪子.

"""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]

beer_card = card('7', 'diamonds')

print(beer_card)

deck = frenchdeck()

print(len(deck)) # 總牌數

print(deck[0]) # 第一張牌

print(deck[-1]) # 最後一張牌

from random import choice

print(choice(deck)) # 隨機抽取

Python資料模型

1 了解python資料模型和介面的概念 2 掌握特殊方法的定義,作用和基本用法。1 資料模型 data model 是資料特徵的抽象,這裡是對python框架的描述。資料模型規範了python自身構建模組的介面,模組包括但不限於序列 迭代器 函式 類和上下文管理器。2 介面 介面泛指實體把自己提供...

Python 資料模型

資料模型規範了 python 構建自身模組的介面。在 python 直譯器遇到特殊的句法時,會使用特殊方法 即魔術方法 去啟用基本的物件操作,這些特殊方法以 開頭與結尾。通過實現特殊方法,自定義資料型別可以表現得跟內建型別一樣,從而寫出更 pythonic 的 python 物件的乙個基本要求就是有...

python資料模型

參考流暢的python第一章 python資料模型定義了一些特別操作,使用者通過重寫這些特殊方法即可實現一些特別操作。比如 init 我理解這個就是建構函式 len 通過重寫該函式可以實現len 方法 str 通過重寫該函式可以實現物件字串化,即將物件以字串的形式顯示 call 通過重寫該函式,物件...