python 20各種內建函式過載

2021-10-01 01:38:22 字數 4120 閱讀 7716

class a:

pass

getattr(obj, name[,default])

hasattr(obj, name)

setattr(obj, name, value)

delattr(obj, name)

示例:class dog:

pass

d = dog()

d.color = "白色"

c = getattr(d, "color") # d.color

hasattr(d,"color") # true

setattr(d,'kinds', '導盲犬')

delattr(d, 'kinds')

說明:with語句並不會改變異常的狀態(同try-finally類似)

環境管理器:

類內有__enter__和 __exit__例項方法的類建立的例項被稱為環境管理器

能夠用with進行管理的物件必須是環境管理器

__enter__方法將在進入with語句時被呼叫,且返回由as 變數 管理的物件

__exit__方法將在離開with語句時被呼叫,且可以用形參來判斷離開with語句時的狀態

運算子過載 overload

什麼是運算子過載

讓自定義的類生成的物件(例項) 能夠使用運算子進行操作

作用:讓程式簡潔易讀

對自定義的物件將運算子賦序新的規則

說明:運算子過載方法的引數的固定的含義,不建議改變運算子的原的含義

算術運算子過載方法

方法名運算子和表示式

說明add(self, rhs)

self + rhs

加法sub(self, rhs)

self - rhs

減法mul(self, rhs)

self * rhs

乘法truediv(self, rhs)

self / rhs

除法floordiv(self, rhs)

self // rhs

地板除mod(self, rhs)

self % rhs

求餘pow(self, rhs)

self ** rhs

冪運算注: rhs (right hand side ) 右手邊

方法名運算子和表示式

說明radd(self, lhs)

lhs + self

加法rsub(self, lhs)

lhs - self

減法rmul(self, lhs)

lhs * self

乘法rtruediv(self, lhs)

lhs / self

除法rfloordiv(self, lhs)

lhs // self

地板除rmod(self, lhs)

lhs % self

求餘rpow(self, lhs)

lhs ** self

冪運算注: lhs (left hand side ) 左手邊

方法名運算子和表示式

說明iadd(self, rhs)

self += rhs

加法isub(self, rhs)

self -= rhs

減法imul(self, rhs)

self *= rhs

乘法itruediv(self, rhs)

self /= rhs

除法ifloordiv(self, rhs)

self //= rhs

地板除imod(self, rhs)

self %= rhs

求餘ipow(self, rhs)

self **= rhs

冪運算注: rhs (right hand side ) 右手邊

比較運算子的過載:

方法名運算子和表示式

說明lt(self, rhs)

self < rhs

小於le(self, rhs)

self <= rhs

小於等於

gt(self, rhs)

self > rhs

大於ge(self, rhs)

self >= rhs

大於等於

eq(self, rhs)

self == rhs

等於ne(self, rhs)

self != rhs

不等於注: 比較運算子通常返回布林值true 或 false

位運算子過載

方法名運算子和表示式

說明and(self, rhs)

self & rhs

位與or(self, rhs)

self

rhsxor(self, rhs)

self ^ rhs

位異或lshift(self, rhs)

self << rhs

左移rshift(self, rhs)

self >> rhs

右移反向位運算子過載

方法名運算子和表示式

說明rand(self, lhs)

lhs & self

位與ror(self, lhs)

lhs | self

位或rxor(self, lhs)

lhs ^ self

位異或rlshift(self, lhs)

lhs << self

左移rrshift(self, lhs)

rhs >> self

右移復合賦值位運算子過載

方法名運算子和表示式

說明iand(self, rhs)

self &= rhs

位與ior(self, rhs)

self

= rhs

ixor(self, rhs)

self ^= rhs

位異或ilshift(self, rhs)

self <<= rhs

左移irshift(self, rhs)

self >>= rhs

右移一元運算子的過載

方法名運算子和表示式

說明neg(self)

- self

負號pos(self)

+ self

正號invert(self)

~ self

取反一元運算子的過載語法

class 類名:

def __***__(self):

....

def __contains__(self, e):

...# e in self

python20 函式和檔案

直接上 注意下函式是如何與檔案相結合ex20.py from sys import argv script,input file argv def print all f print f.read def rewind f f.seek 0 def print a line line count,f...

Python教程之Python2 0簡介

python 是乙個高層次的結合了解釋性 編譯性 互動性和物件導向的指令碼語言。python 的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。python 是一種解釋型語言 這意味著開發過程中沒有了編譯這個環節。類似於php和perl...

python 20 規範化目錄

目錄3.劃分專案目錄 4.專案啟動檔案編寫 將 進行分類的優點 載入快 可讀性高 查詢修改簡單。統一相同的路徑,也就是統一相同的變數,中如果需要這個路徑時,直接引用即可,可以多次引用。存放在conf資料夾。common.py公共元件檔案,放置一些公用的函式 功能,以便其他主邏輯或者業務需求。存放在l...