最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python入門(mén)教程之運(yùn)算符重載詳解

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

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

# Python 程序顯示 + 運(yùn)算符用于不同目的。

print(1 + 2)

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

# Product two numbers
print(3 * 4)

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

輸出

3
GeeksFor
12
GeeksGeeksGeeksGeeks

如何重載Python中的運(yùn)算符

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

在 Python 中重載二進(jìn)制 + 運(yùn)算符:  

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

代碼 1:

# Python 程序說(shuō)明如何重載二元 + 運(yùn)算符

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:

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

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

	# 添加兩個(gè)對(duì)象
	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中重載比較運(yùn)算符

# Python程序重載比較運(yùn)算符

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

重載相等和小于運(yùn)算符

# Python程序重載相等和小于運(yùn)算符

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

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

二元運(yùn)算符

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

比較運(yùn)算符

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

賦值運(yùn)算符

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

一元運(yùn)算符

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

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

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

相關(guān)文章

  • Python隨機(jī)數(shù)模塊詳情

    Python隨機(jī)數(shù)模塊詳情

    這篇文章主要介紹了Python隨機(jī)數(shù)模塊,隨機(jī)數(shù)模塊實(shí)現(xiàn)了各種分布的偽隨機(jī)數(shù)生成器。對(duì)于整數(shù),從范圍中有統(tǒng)一的選擇。 對(duì)于序列,存在隨機(jī)元素的統(tǒng)一選擇、用于生成列表的隨機(jī)排列的函數(shù)、以及用于隨機(jī)抽樣而無(wú)需替換的函數(shù),下文來(lái)看看詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • python數(shù)據(jù)結(jié)構(gòu)之棧、隊(duì)列及雙端隊(duì)列

    python數(shù)據(jù)結(jié)構(gòu)之棧、隊(duì)列及雙端隊(duì)列

    在上一章的學(xué)習(xí)中,我們主要學(xué)習(xí)了怎么去衡量一個(gè)算法的好壞,比較常見(jiàn)的方式是使用大O記法,就是所謂的時(shí)間復(fù)雜度,這一章節(jié)我來(lái)學(xué)習(xí)基本的數(shù)據(jù)結(jié)構(gòu),如棧、隊(duì)列和雙端隊(duì)列等等。感興趣的小伙伴可以參考一下
    2021-12-12
  • django_orm查詢(xún)性能優(yōu)化方法

    django_orm查詢(xún)性能優(yōu)化方法

    這篇文章主要介紹了django_orm查詢(xún)性能優(yōu)化方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • Flask之請(qǐng)求鉤子的實(shí)現(xiàn)

    Flask之請(qǐng)求鉤子的實(shí)現(xiàn)

    這篇文章主要介紹了Flask之請(qǐng)求鉤子的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Python面向?qū)ο笾瓷?自省機(jī)制實(shí)例分析

    Python面向?qū)ο笾瓷?自省機(jī)制實(shí)例分析

    這篇文章主要介紹了Python面向?qū)ο笾瓷?自省機(jī)制,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中的反射/自省機(jī)制概念、原理及相關(guān)屬性操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python中三個(gè)不可思議的返回功能分享

    Python中三個(gè)不可思議的返回功能分享

    這篇文章主要給大家介紹了Python中三個(gè)不可思議的返回功能,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Python實(shí)現(xiàn)單項(xiàng)鏈表的最全教程

    Python實(shí)現(xiàn)單項(xiàng)鏈表的最全教程

    單向鏈表也叫單鏈表,是鏈表中最簡(jiǎn)單的一種形式,它的每個(gè)節(jié)點(diǎn)包含兩個(gè)域,一個(gè)信息域(元素域)和一個(gè)鏈接域,這個(gè)鏈接指向鏈表中的下一個(gè)節(jié)點(diǎn),而最后一個(gè)節(jié)點(diǎn)的鏈接域則指向一個(gè)空值,這篇文章主要介紹了Python實(shí)現(xiàn)單項(xiàng)鏈表,需要的朋友可以參考下
    2023-01-01
  • 基于python3 pyQt5 QtDesignner實(shí)現(xiàn)窗口化猜數(shù)字游戲功能

    基于python3 pyQt5 QtDesignner實(shí)現(xiàn)窗口化猜數(shù)字游戲功能

    這篇文章主要介紹了基于python3 pyQt5 QtDesignner實(shí)現(xiàn)窗口化猜數(shù)字游戲功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • pytorch實(shí)現(xiàn)圖像識(shí)別(實(shí)戰(zhàn))

    pytorch實(shí)現(xiàn)圖像識(shí)別(實(shí)戰(zhàn))

    這篇文章主要介紹了pytorch實(shí)現(xiàn)圖像識(shí)別(實(shí)戰(zhàn)),文章主要分享實(shí)現(xiàn)代碼,但也具有一定的參考價(jià)值,需要的小伙伴可以才可以一下,希望對(duì)你有所幫助
    2022-02-02
  • Python圖像文字識(shí)別詳解(附實(shí)戰(zhàn)代碼)

    Python圖像文字識(shí)別詳解(附實(shí)戰(zhàn)代碼)

    這篇文章主要給大家介紹了關(guān)于Python圖像文字識(shí)別的相關(guān)資料,本文介紹使用python進(jìn)行圖像的文字識(shí)別,將圖像中的文字提取出來(lái),可以幫助我們完成很多有趣的事情,需要的朋友可以參考下
    2024-02-02

最新評(píng)論

津南区| 洪泽县| 桑日县| 鹤山市| 阳原县| 黔西| 南昌县| 安国市| 唐河县| 福泉市| 文安县| 田林县| 始兴县| 云梦县| 三江| 博爱县| 武功县| 扶余县| 丽水市| 忻州市| 会昌县| 望谟县| 盈江县| 五台县| 大埔县| 民丰县| 额敏县| 白沙| 安庆市| 中江县| 泗水县| 德钦县| 大兴区| 镇雄县| 临桂县| 璧山县| 贵港市| 怀宁县| 正定县| 泸定县| 乐平市|