python運算子過載

2021-10-03 22:06:42 字數 1077 閱讀 3114

python 和 c++ 一樣,都支援運算子過載,python提供了內建過載方法,如果想過載,直接重寫改方法即可,如下所示:

__add__(self, other)

加法__sub__(self,other) 

減法__mul__(self,other)

乘法__truediv__(self,other)

除法__floordiv__(self,other)

地板除__mod__(self,other)

取模(求餘)

__pow__(self,other)

冪運算例如,裡面是乙個向量類vector,重寫了加法,和減法,其它的也可以一樣的寫。

class vector:

def __init__(self, a, b):

self.a = a

self.b = b

def __str__(self):

return 'vector (%d, %d)' % (self.a, self.b)

#加號運算子過載

def __add__(self, other):

print("向量加法運算")

return vector(self.a + other.a, self.b + other.b)

#減法運算過載

def __sub__(self, other):

print("向量減法運算")

return vector(self.a - other.a, self.b - other.b)

測試**:

v1 = vector(2, 10)

v2 = vector(5, -2)

print(v1.__str__())

print(v2.__str__())

print(v1 + v2)

print(v1-v2)

結果

寫起來比c++方便。

Python 運算子過載

在 python 中is 是兩個運算子,對物件進行比較,分別對id,type value 進行比較。is 比較id type value三維 而 僅 比較value。實驗發現其實is,僅僅是比較一些簡單的基礎變數。class test object def init self self.value ...

Python運算子過載

print 呼叫父類建構函式 def parentmethod self print 呼叫父類方法 def setattr self,attr self.parentattr attr def getattr self print 父類屬性 self.parentattr def del self ...

python 運算子過載

運算子過載就是讓用類寫成的物件,可截獲並響應用在內建型別上的運算 加法,切片,列印和點號運算等 1.以雙下劃線命名的方法 x 的特殊鉤子,python運算子過載的實現是提供特殊命名的方法來攔截運算,python替每種運算和特殊命名的方法之間,定義了固定不變的對映關係 2.當例項出現在內建運算時,這類...