欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python入門教程之運算符重載詳解

 更新時間:2022年09月13日 16:55:10   作者:海擁  
運算符重載意味著賦予超出其預(yù)定義的操作含義的擴展含義。例如運算符 + 用于添加兩個整數(shù)以及連接兩個字符串和合并兩個列表。本文將通過示例帶大家詳細了解Python的運算符重載,感興趣的可以了解一下

運算符重載意味著賦予超出其預(yù)定義的操作含義的擴展含義。例如運算符 + 用于添加兩個整數(shù)以及連接兩個字符串和合并兩個列表。這是可以實現(xiàn)的,因為 '+' 運算符被 int 類和 str 類重載。您可能已經(jīng)注意到,相同的內(nèi)置運算符或函數(shù)對不同類的對象顯示不同的行為,這稱為運算符重載。

# Python 程序顯示 + 運算符用于不同目的。

print(1 + 2)

# 連接兩個字符串
print("Geeks"+"For")

# Product two numbers
print(3 * 4)

# 重復(fù)字符串
print("Geeks"*4)

輸出

3
GeeksFor
12
GeeksGeeksGeeksGeeks

如何重載Python中的運算符

考慮到我們有兩個對象,它們是一個類的物理表示(用戶定義的數(shù)據(jù)類型),我們必須使用二進制“+”運算符添加兩個對象,它會引發(fā)錯誤,因為編譯器不知道如何添加兩個對象. 因此,我們?yōu)檫\算符定義了一個方法,該過程稱為運算符重載。我們可以重載所有現(xiàn)有的運算符,但不能創(chuàng)建新的運算符。為了執(zhí)行運算符重載,Python 提供了一些特殊函數(shù)或魔術(shù)函數(shù),當(dāng)它與特定運算符關(guān)聯(lián)時會自動調(diào)用這些函數(shù)。例如,當(dāng)我們使用 + 運算符時,會自動調(diào)用魔術(shù)方法 add,其中定義了+ 運算符的操作。

在 Python 中重載二進制 + 運算符:  

當(dāng)我們在用戶定義的數(shù)據(jù)類型上使用運算符時,會自動調(diào)用與該運算符關(guān)聯(lián)的特殊函數(shù)或魔術(shù)函數(shù)。改變運算符的行為就像改變方法或函數(shù)的行為一樣簡單。您在類中定義方法,運算符根據(jù)方法中定義的行為工作。當(dāng)我們使用 + 運算符時,會自動調(diào)用魔術(shù)方法 add ,其中定義了 + 運算符的操作。通過改變這個魔法方法的代碼,我們可以給 + 運算符賦予額外的意義。 

代碼 1:

# Python 程序說明如何重載二元 + 運算符

class A:
	def __init__(self, a):
		self.a = a

	# adding two objects
	def __add__(self, o):
		return self.a + o.a
ob1 = A(1)
ob2 = A(2)
ob3 = A("Geeks")
ob4 = A("For")

print(ob1 + ob2)
print(ob3 + ob4)

輸出

3
GeeksFor

代碼 2:

# 使用二元 + 運算符重載執(zhí)行兩個復(fù)數(shù)相加的 Python 程序。

class complex:
	def __init__(self, a, b):
		self.a = a
		self.b = b

	# 添加兩個對象
	def __add__(self, other):
		return self.a + other.a, self.b + other.b

Ob1 = complex(1, 2)
Ob2 = complex(2, 3)
Ob3 = Ob1 + Ob2
print(Ob3)

輸出

(3, 5)

在 Python中重載比較運算符

# Python程序重載比較運算符

class A:
	def __init__(self, a):
		self.a = a
	def __gt__(self, other):
		if(self.a>other.a):
			return True
		else:
			return False
ob1 = A(2)
ob2 = A(3)
if(ob1>ob2):
	print("ob1 is greater than ob2")
else:
	print("ob2 is greater than ob1")

輸出 : 

ob2 is greater than ob1

重載相等和小于運算符

# Python程序重載相等和小于運算符

class A:
	def __init__(self, a):
		self.a = a
	def __lt__(self, other):
		if(self.a<other.a):
			return "ob1 is lessthan ob2"
		else:
			return "ob2 is less than ob1"
	def __eq__(self, other):
		if(self.a == other.a):
			return "Both are equal"
		else:
			return "Not equal"
				
ob1 = A(2)
ob2 = A(3)
print(ob1 < ob2)

ob3 = A(4)
ob4 = A(4)
print(ob1 == ob2)

輸出 : 

ob1 is lessthan ob2
Not equal

用于運算符重載的 Python 魔術(shù)方法或特殊函數(shù)

二元運算符

運算符Magic Method
+add(自己,其他)
sub(自己,其他)
*****mul(自己,其他)
/truediv(自我,其他)
//floordiv(自我,其他)
%mod(自我,其他)
******pow(自己,其他)
>>rshift(自我,其他)
<<lshift(自我,其他)
&(自己,其他)
 (自己,其他) 
xor(自我,其他)

比較運算符

運算符Magic Method
<lt(自己,其他)
>gt(自己,其他)
<=le(自己,其他)
>=ge(自己,其他)
==eq(自我,其他)
!=ne(自己,其他)

賦值運算符

運算符Magic Method
-=isub(自我,其他)
+=iadd(自己,其他)
*=imul(自我,其他)
/=idiv(自我,其他)
//=ifloordiv(自我,其他)
%=imod(自己,其他)
**=ipow(自我,其他)
>>=irshift(自我,其他)
<<=ilshift(自己,其他)
&=iand(自己,其他)
** =**ior(自己,其他) 
^=ixor(自我,其他)

一元運算符

運算符Magic Method
neg(自我)
+pos(自我)
~反轉(zhuǎn)(自我)

注意: 不能更改運算符的運算符數(shù)量。例如。您不能將一元運算符重載為二元運算符。以下代碼將引發(fā)語法錯誤。

到此這篇關(guān)于Python入門教程之運算符重載詳解的文章就介紹到這了,更多相關(guān)Python運算符重載內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python爬蟲進階之爬取某視頻并下載的實現(xiàn)

    Python爬蟲進階之爬取某視頻并下載的實現(xiàn)

    這篇文章主要介紹了Python爬蟲進階之爬取某視頻并下載的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • pycharm設(shè)置虛擬環(huán)境與更換鏡像教程

    pycharm設(shè)置虛擬環(huán)境與更換鏡像教程

    這篇文章主要介紹了pycharm設(shè)置虛擬環(huán)境與更換鏡像教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 在Pandas中處理NaN值的方法

    在Pandas中處理NaN值的方法

    這篇文章主要介紹了在Pandas中處理NaN值的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • python 實現(xiàn)在一張圖中繪制一個小的子圖方法

    python 實現(xiàn)在一張圖中繪制一個小的子圖方法

    今天小編就為大家分享一篇python 實現(xiàn)在一張圖中繪制一個小的子圖方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python使用Selenium實現(xiàn)淘寶搶單的流程分析

    Python使用Selenium實現(xiàn)淘寶搶單的流程分析

    這篇文章主要介紹了Python使用Selenium實現(xiàn)淘寶搶單的流程分析,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python循環(huán)結(jié)構(gòu)詳解

    Python循環(huán)結(jié)構(gòu)詳解

    這篇文章主要介紹了Python循環(huán)結(jié)構(gòu)詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • python庫skimage給灰度圖像染色的方法示例

    python庫skimage給灰度圖像染色的方法示例

    這篇文章主要介紹了python庫skimage給灰度圖像染色的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python環(huán)境搭建之OpenCV的步驟方法

    Python環(huán)境搭建之OpenCV的步驟方法

    本篇文章主要介紹了Python環(huán)境搭建之OpenCV的步驟方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • python使用super()出現(xiàn)錯誤解決辦法

    python使用super()出現(xiàn)錯誤解決辦法

    這篇文章主要介紹了python使用super()出現(xiàn)錯誤解決辦法的相關(guān)資料,對于TypeError: must be type, not classobj的錯誤進行處理,需要的朋友可以參考下
    2017-08-08
  • Python 給屏幕打印信息加上顏色的實現(xiàn)方法

    Python 給屏幕打印信息加上顏色的實現(xiàn)方法

    這篇文章主要介紹了Python 給屏幕打印信息加上顏色的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04

最新評論