Python?運(yùn)算符Inplace?與Standard?
前言:
普通運(yùn)算符執(zhí)行簡(jiǎn)單的分配工作。另一方面,Inplace 運(yùn)算符的行為類(lèi)似于普通運(yùn)算符,只是它們?cè)诳勺兒筒豢勺兡繕?biāo)的情況下以不同的方式運(yùn)行。
- _add_方法進(jìn)行簡(jiǎn)單的加法,接受兩個(gè)參數(shù),返回總和,并將其存儲(chǔ)在另一個(gè)變量中,而不修改任何參數(shù)。
- 另一方面, iadd 方法也接受兩個(gè)參數(shù),但它通過(guò)將總和存儲(chǔ)在其中來(lái)對(duì)傳遞的第一個(gè)參數(shù)進(jìn)行就地更改。由于在此過(guò)程中需要對(duì)象突變,因此不可變目標(biāo)(例如數(shù)字、字符串和元組)不應(yīng)具有 iadd 方法。
- 普通運(yùn)算符的“add()” 方法,實(shí)現(xiàn)“ a+b ”并將結(jié)果存儲(chǔ)在提到的變量中。
- Inplace 運(yùn)算符的“iadd()” 方法,如果存在“ a+=b ”(即在不可變目標(biāo)的情況下,它不存在),則實(shí)現(xiàn)“a+=b”并更改傳遞參數(shù)的值。但如果不是,則執(zhí)行“a+b” 。
案例 1:不可變目標(biāo)。
在不可變目標(biāo)中,例如數(shù)字、字符串和元組。就地運(yùn)算符的行為與普通運(yùn)算符相同,即只進(jìn)行賦值,不修改傳遞的參數(shù)。
# 用于演示不可變目標(biāo)中的 Inplace 和 Normal 運(yùn)算符之間區(qū)別的 Python 代碼
# 導(dǎo)入算子處理算子操作
import operator
# 初始化值
x = 5
y = 6
a = 5
b = 6
# 使用 add() 添加傳遞的參數(shù)
z = operator.add(a,b)
# 使用 iadd() 添加傳遞的參數(shù)
p = operator.iadd(x,y)
# 打印修改后的值
print ("使用 normal 運(yùn)算符添加后的值: ",end="")
print (z)
# 打印修改后的值
print ("使用 Inplace 運(yùn)算符添加后的值: ",end="")
print (p)
# printing value of first argument
# value is unchanged
print ("使用 normal 運(yùn)算符的第一個(gè)參數(shù)的值: ",end="")
print (a)
# printing value of first argument
# value is unchanged
print ("使用 Inplace 運(yùn)算符的第一個(gè)參數(shù)的值: ",end="")
print (x)輸出:
使用 normal 運(yùn)算符添加后的值: 11
使用 Inplace 運(yùn)算符添加后的值: 11
使用 normal 運(yùn)算符的第一個(gè)參數(shù)的值: 5
使用 Inplace 運(yùn)算符的第一個(gè)參數(shù)的值: 5
案例 2:可變目標(biāo)
Inplace 運(yùn)算符在可變目標(biāo)(例如列表和字典)中的行為與普通運(yùn)算符不同。更新和分配都在可變目標(biāo)的情況下執(zhí)行。
# Python 代碼演示可變目標(biāo)中的 Inplace 和 Normal 運(yùn)算符之間的區(qū)別
# 導(dǎo)入算子處理算子操作
import operator
# 初始化列表
a = [1, 2, 4, 5]
# 使用 add() 添加傳遞的參數(shù)
z = operator.add(a,[1, 2, 3])
# 打印修改值
print ("使用 normal 運(yùn)算符添加后的值: ",end="")
print (z)
# 第一個(gè)參數(shù)值的打印值不變
print ("使用 normal 運(yùn)算符的第一個(gè)參數(shù)的值: ",end="")
print (a)
# 使用 iadd() 添加傳遞的參數(shù)執(zhí)行 a+=[1, 2, 3]
p = operator.iadd(a,[1, 2, 3])
# 打印修改值
print ("使用 Inplace 運(yùn)算符添加后的值: ",end="")
print (p)
# 第一個(gè)參數(shù)值的打印值已更改
print ("使用 Inplace 運(yùn)算符的第一個(gè)參數(shù)的值: ",end="")
print (a)輸出:
使用 normal 運(yùn)算符添加后的值: [1, 2, 4, 5, 1, 2, 3]
使用 normal 運(yùn)算符的第一個(gè)參數(shù)的值: [1, 2, 4, 5]
使用 Inplace 運(yùn)算符添加后的值 [1, 2, 4, 5, 1, 2, 3]
使用 Inplace 運(yùn)算符的第一個(gè)參數(shù)的值: [1, 2, 4, 5, 1, 2, 3]
到此這篇關(guān)于Python 運(yùn)算符Inplace 與Standard 的文章就介紹到這了,更多相關(guān)Python 運(yùn)算符 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)簡(jiǎn)單http服務(wù)器
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單http服務(wù)器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Django+Celery實(shí)現(xiàn)定時(shí)任務(wù)的示例
Celery是一個(gè)基于python開(kāi)發(fā)的分布式任務(wù)隊(duì)列,而做python WEB開(kāi)發(fā)最為流行的框架莫屬Django,本示例使用主要依賴(lài)包Django+Celery實(shí)現(xiàn)定時(shí)任務(wù),感興趣的朋友一起看看吧2021-06-06
使用mypy對(duì)python程序進(jìn)行靜態(tài)檢查
大家好,本篇文章主要講的是使用mypy對(duì)python程序進(jìn)行靜態(tài)檢查,感興趣的同學(xué)快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下哦2021-11-11
python3+PyQt5使用數(shù)據(jù)庫(kù)表視圖
這篇文章主要為大家詳細(xì)介紹了python3+PyQt5使用數(shù)據(jù)庫(kù)表視圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
python使用pil庫(kù)實(shí)現(xiàn)圖片合成實(shí)例代碼
Python time庫(kù)的時(shí)間時(shí)鐘處理
Python 列表 sort()函數(shù)使用實(shí)例詳解
Python常用標(biāo)準(zhǔn)庫(kù)之os模塊功能

