20201205 110 特殊方法和運算子過載

2021-10-11 13:29:05 字數 1139 閱讀 7407

python 的運算子實際上是通過呼叫物件的特殊方法實現的。比如:

a =

20b =

30c = a + b

d = a.__add__(b)

print

(c)print

(d)print

(dir

(a))

執行結果:

常用的特殊方法統計如下:

每個運算子實際上都對應了相應的方法,統計如下:

可以重寫上面的特殊方法,即實現「運算子的過載」:

class

person

:def

__init__

(self, name)

: self.name = name

def__add__

(self, other):if

isinstance

(other, person)

:return

'{}--{}'

.format

(self.name, other.name)

else

:return

'錯誤!不是同類物件,不能相加。'

def__mul__

(self, other):if

isinstance

(other,

int)

:return self.name * other

else

:return

'錯誤!不符合計算邏輯,只能乘以整數。'

p1 = person(

'tom'

)p2 = person(

'lucky'

)print

(p1 + p2)

Python 特殊方法

特殊方法,也稱為魔術方法 特殊方法都是使用 開頭和結尾的 特殊方法一般不需要我們手動呼叫,需要在一些特殊情況下自動執行 定義乙個person類 class person object 人類 def init self,name age self.name name self.age age str ...

python的特殊方法

來自 流暢的python 字串 位元組序列 repr str format bytes 數值轉換 abs bool complex int float hash index 集合模擬 len getitem setitem delitem contains 迭代列舉 iter reversed ne...

Python 內建特殊方法

1.資訊格式化操作 str 方法和 repr 方法 str 方法 class dog def init self,n,h self.name n self.height h def str self return 狗的名字 s n狗的體長 s self.name,self.height dog1 d...