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...