網(wǎng)站首頁 編程語言 正文
前言:
普通運(yùn)算符執(zhí)行簡單的分配工作。另一方面,Inplace 運(yùn)算符的行為類似于普通運(yùn)算符,只是它們在可變和不可變目標(biāo)的情況下以不同的方式運(yùn)行。?
- _add_方法進(jìn)行簡單的加法,接受兩個(gè)參數(shù),返回總和,并將其存儲在另一個(gè)變量中,而不修改任何參數(shù)。
- 另一方面,?iadd?方法也接受兩個(gè)參數(shù),但它通過將總和存儲在其中來對傳遞的第一個(gè)參數(shù)進(jìn)行就地更改。由于在此過程中需要對象突變,因此不可變目標(biāo)(例如數(shù)字、字符串和元組)不應(yīng)具有?iadd?方法。
- 普通運(yùn)算符的“add()”?方法,實(shí)現(xiàn)“?a+b?”并將結(jié)果存儲在提到的變量中。
- 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]
原文鏈接:https://juejin.cn/post/7142775960851447816
相關(guān)推薦
- 2022-07-26 繞過正則表達(dá)式例子
- 2022-04-18 Taro編譯小程序的時(shí)候,就沒有錄音權(quán)限,沒有scope.record這個(gè)權(quán)限
- 2022-05-24 C#中Dispose和Finalize方法使用介紹_C#教程
- 2022-03-07 Go?container包的介紹_Golang
- 2022-06-24 Python利用隨機(jī)函數(shù)生成變化圖形詳解_python
- 2022-05-07 Python真題案例之蛇形數(shù)組詳解_python
- 2022-03-29 python中format函數(shù)與round函數(shù)的區(qū)別_python
- 2022-09-03 解決vmware上Ubuntu共享文件夾的問題_VMware
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支