Python 方法重寫和運算子過載

2021-09-24 14:27:27 字數 1472 閱讀 3064

函式的重寫:

將函式重寫一遍,如:

class animal(object):

def __init__(self, name, age, height, weight):

self.name = name

self.age = age

self.height = height

self.weight = weight

ani  = animal("大黃", 5, 60, 25)

print(ani)

>>> <__main__.animal object at 0x0000011284c98438>

class animal(object):

def __init__(self, name, age, height, weight):

self.name = name

self.age = age

self.height = height

self.weight = weight

def __str__(self):

return "%s-%d-%d-%d"%(self.name, self.age, self.height, self.weight)

ani  = animal("大黃", 5, 60, 25)

print(ani)#在列印ani時自動呼叫str函式

>>>大黃-5-60-25

使用時機:當乙個物件的屬性值很多,並且都需要列印,重寫__str__方法後,簡化了**,方便檢視

運算子過載:

類可以過載加減運算,列印,函式呼叫,索引等內建運算,運算子過載使我們的物件的行為與內建函式一樣,在python呼叫時操作符會自動的作用於類的物件,python會自動的搜尋並呼叫物件中指定的方法完成操作。

#數字和字串都能直接相加

print(1 + 2)

print("1" + "2")

兩個物件不能直接相加,但是使用運算子過載方法重寫就可以了:

class person(object):

def __init__(self, num):

self.num = num

#運算子過載

def __add__(self, other):

return person(self.num + other.num)

#方法重寫

def __str__(self):

return str(self.num)

per1 = person(1)

per2 = person(2)

print(per1 + per2)

>>>3

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

python 的運算子實際上是通過呼叫物件的特殊方法實現的。比如 a 20b 30c a b d a.add b print c print d print dir a 執行結果 常用的特殊方法統計如下 每個運算子實際上都對應了相應的方法,統計如下 可以重寫上面的特殊方法,即實現 運算子的過載 cl...

python 運算子 Python運算子

python語言支援以下型別的運算子 算術運算子 比較 關係 運算子 賦值運算子 邏輯運算子 位運算子 成員運算子 身份運算子 運算子優先順序 1 算術運算子 加號 減號 乘 除 取餘 乘方 整除 1 其中除號 要注意 在python2中,用作整除。解決方法有三 1 兩個相除的數中有乙個為實數。2 ...

python 運算子 python(運算子)

一 運算子 1.算數運算子 1 加 注意 字串與整數之間不能進行相加,需要通過str 或int 進行轉換資料型別 整數與整數相加 1 1 浮點數與浮點數相加 2.0 2.0 4.0 二進位制儲存精度誤差 1.1 1.3 2.4000000000000004 整數與浮點數相加 2 2.0 4.0字串之...