網站首頁 編程語言 正文
前言:
普通運算符執行簡單的分配工作。另一方面,Inplace 運算符的行為類似于普通運算符,只是它們在可變和不可變目標的情況下以不同的方式運行。?
- _add_方法進行簡單的加法,接受兩個參數,返回總和,并將其存儲在另一個變量中,而不修改任何參數。
- 另一方面,?iadd?方法也接受兩個參數,但它通過將總和存儲在其中來對傳遞的第一個參數進行就地更改。由于在此過程中需要對象突變,因此不可變目標(例如數字、字符串和元組)不應具有?iadd?方法。
- 普通運算符的“add()”?方法,實現“?a+b?”并將結果存儲在提到的變量中。
- Inplace 運算符的“iadd()”?方法,如果存在“?a+=b?”(即在不可變目標的情況下,它不存在),則實現“a+=b”并更改傳遞參數的值。但如果不是,則執行“a+b”?。
案例 1:不可變目標。?
在不可變目標中,例如數字、字符串和元組。就地運算符的行為與普通運算符相同,即只進行賦值,不修改傳遞的參數。
# 用于演示不可變目標中的 Inplace 和 Normal 運算符之間區別的 Python 代碼
# 導入算子處理算子操作
import operator
# 初始化值
x = 5
y = 6
a = 5
b = 6
# 使用 add() 添加傳遞的參數
z = operator.add(a,b)
# 使用 iadd() 添加傳遞的參數
p = operator.iadd(x,y)
# 打印修改后的值
print ("使用 normal 運算符添加后的值: ",end="")
print (z)
# 打印修改后的值
print ("使用 Inplace 運算符添加后的值: ",end="")
print (p)
# printing value of first argument
# value is unchanged
print ("使用 normal 運算符的第一個參數的值: ",end="")
print (a)
# printing value of first argument
# value is unchanged
print ("使用 Inplace 運算符的第一個參數的值: ",end="")
print (x)
輸出:
使用 normal 運算符添加后的值: 11
使用 Inplace 運算符添加后的值: 11
使用 normal 運算符的第一個參數的值: 5
使用 Inplace 運算符的第一個參數的值: 5
案例 2:可變目標?
Inplace 運算符在可變目標(例如列表和字典)中的行為與普通運算符不同。更新和分配都在可變目標的情況下執行。
# Python 代碼演示可變目標中的 Inplace 和 Normal 運算符之間的區別
# 導入算子處理算子操作
import operator
# 初始化列表
a = [1, 2, 4, 5]
# 使用 add() 添加傳遞的參數
z = operator.add(a,[1, 2, 3])
# 打印修改值
print ("使用 normal 運算符添加后的值: ",end="")
print (z)
# 第一個參數值的打印值不變
print ("使用 normal 運算符的第一個參數的值: ",end="")
print (a)
# 使用 iadd() 添加傳遞的參數執行 a+=[1, 2, 3]
p = operator.iadd(a,[1, 2, 3])
# 打印修改值
print ("使用 Inplace 運算符添加后的值: ",end="")
print (p)
# 第一個參數值的打印值已更改
print ("使用 Inplace 運算符的第一個參數的值: ",end="")
print (a)
輸出:
使用 normal 運算符添加后的值: [1, 2, 4, 5, 1, 2, 3]
使用 normal 運算符的第一個參數的值: [1, 2, 4, 5]
使用 Inplace 運算符添加后的值 [1, 2, 4, 5, 1, 2, 3]
使用 Inplace 運算符的第一個參數的值: [1, 2, 4, 5, 1, 2, 3]
原文鏈接:https://juejin.cn/post/7142775960851447816
相關推薦
- 2022-04-18 python?request?post?列表的方法詳解_python
- 2022-12-21 Flutter?runApp到渲染上屏分析詳解_Android
- 2022-10-22 Python中的list.sort()方法和函數sorted(list)_python
- 2023-02-04 詳解C++中存儲類的使用_C 語言
- 2022-05-26 Python?if?else語句對縮進的要求_python
- 2022-06-15 golang?gorm框架數據庫的連接操作示例_Golang
- 2022-03-20 C#中實現PriorityQueue優先級隊列的代碼_C#教程
- 2022-08-16 PostgreSQL怎么創建分區表詳解_PostgreSQL
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支