Python?運(yùn)算符Inplace?與Standard?
前言:
普通運(yùn)算符執(zhí)行簡單的分配工作。另一方面,Inplace 運(yùn)算符的行為類似于普通運(yùn)算符,只是它們在可變和不可變目標(biāo)的情況下以不同的方式運(yùn)行。
- _add_方法進(jìn)行簡單的加法,接受兩個(gè)參數(shù),返回總和,并將其存儲(chǔ)在另一個(gè)變量中,而不修改任何參數(shù)。
- 另一方面, iadd 方法也接受兩個(gè)參數(shù),但它通過將總和存儲(chǔ)在其中來對傳遞的第一個(gè)參數(shù)進(jìn)行就地更改。由于在此過程中需要對象突變,因此不可變目標(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pandas DataFrame 根據(jù)多列的值做判斷,生成新的列值實(shí)例
今天小編就為大家分享一篇pandas DataFrame 根據(jù)多列的值做判斷,生成新的列值實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05python Bamboolib庫加速Pandas數(shù)據(jù)分析過程詳解
這篇文章主要介紹了python Bamboolib庫加速Pandas數(shù)據(jù)分析過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python實(shí)現(xiàn)自動(dòng)識(shí)別并填加驗(yàn)證碼的示例代碼
實(shí)現(xiàn)自動(dòng)識(shí)別網(wǎng)頁中的驗(yàn)證碼并填寫,需要結(jié)合使用網(wǎng)絡(luò)爬蟲技術(shù)、圖像識(shí)別(OCR),以及可能的瀏覽器自動(dòng)化工具(如Selenium),本文給大家介紹了Python實(shí)現(xiàn)自動(dòng)識(shí)別并填加驗(yàn)證碼的示例,需要的朋友可以參考下2024-06-06web自動(dòng)化測試Selenium點(diǎn)擊元素的常用方法
在Web自動(dòng)化測試中,Selenium提供多種點(diǎn)擊方法,常用的click()方法通過選中元素并觸發(fā)點(diǎn)擊事件,若click()方法不穩(wěn)定,可以采用JavaScript執(zhí)行點(diǎn)擊或使用ActionChains類模擬鼠標(biāo)點(diǎn)擊,需要的朋友可以參考下2024-09-09pycharm配置python 設(shè)置pip安裝源為豆瓣源
這篇文章主要介紹了pycharm配置python 設(shè)置pip安裝源為豆瓣源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python中使用(.)進(jìn)行相對路徑訪問文件的操作方法
在Python中,使用相對路徑訪問文件是一種常見的做法,尤其是在處理與腳本位于同一目錄或附近目錄的文件時(shí),這篇文章主要介紹了python中使用(.)來進(jìn)行相對路徑訪問文件,需要的朋友可以參考下2024-05-05