Python資料模型

Hanwencheng發表於2019-02-16

導語:本文章記錄了本人在學習Python基礎之緒論篇的重點知識及個人心得,以加深自己的理解。

本文重點:

1、瞭解Python資料模型和介面的概念;
2、掌握特殊方法的定義,作用和基本用法。

一、基本概念

1、資料模型(Data Model)是資料特徵的抽象,這裡是對Python框架的描述。
資料模型規範了Python自身構建模組的介面,模組包括但不限於序列、迭代器、函式、類和上下文管理器。
2、介面:介面泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內部操作分離出外部溝通方法,使其能被修改內部而不影響外界其他實體與其互動的方式。
介面的作用:可以為不同類順利互動提供標準。
3、中綴運算子的基本原則:不改變操作物件。

二、特殊方法

特殊方法,暱稱是魔術方法,又稱雙下方法。

1、特殊方法的定義:

(1).定義在某些class當中;
(2).不需要直接呼叫,被Python直譯器呼叫;
(3).Python的某些函式或者是操作符會呼叫相應的特殊方法。

2、作用:特殊方法能讓物件實現和支援以下的語言構架,並與之互動:

  • 迭代
  • 集合類
  • 屬性訪問
  • 運算子過載
  • 函式和方法的呼叫
  • 物件的建立和銷燬
  • 字串表示形式和格式化
  • 管理上下文(with塊)

3、意義:通過內建函式呼叫特殊方法通常有額外好處(目前不明);對於內建的類而言,使用特殊方法速度更快。

4、字串特殊方法

包括__repr__和__str__。
前者方便我們除錯和記錄日誌,注重準確性,後者則是給終端使用者看的,注重可讀性。

eg:利用特殊方法知識自定義向量加法

# -*- coding: utf-8 -*-
class Vector:
    def __init__(self,x,y):#定義類的引數
        self.x=x
        self.y=y
    def __repr__(self):
        return "Vector(%r,%r)"%(self.x,self.y)#以字串形式輸出類便於辨認,重要!!!
    def __add__(self,other):#自定義向量的加法並返回值
        x=self.x+other.x
        y=self.y+other.y
        return Vector(x,y)
v1=Vector(2,3)
v2=Vector(1,4)
print(v1+v2)#輸出Vector(3,7)

To Learn More:https://www.cnblogs.com/chang…

相關文章