Python 运算符Inplace 与Standard 

前言:

普通运算符执行简单的分配工作。另一方面,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]

到此这篇关于Python 运算符Inplace 与Standard 的文章就介绍到这了,更多相关Python 运算符 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python drop方法删除列之inplace参数实例

    drop方法有一个可选参数inplace,表明可对原数组作出修改并返回一个新数组.不管参数默认为False还是设置为True,原数组的内存值是不会改变的,区别在于原数组的内容是否直接被修改.默认为False,表明原数组内容并不改变,如果我们需要得到改变后的内容,需要将新结果赋给一个新的数组,即data = data.drop(['test','test2'],1). 如果将inplace值设定为True,则原数组内容直接被改变. 测试程序如下 #增加两列空值 import numpy as np

  • 使用python修改文件并立即写回到原始位置操作(inplace读写)

    很多应用多需要处理文件,而处理文件有一个固定的模式:打开文件,读入一些数据,处理这些数据,打印到屏幕上或写入另一个文件. 那么,如果我们想修改之后立即写回文件,该怎么做呢?用什么模式打开?又怎么读写? 我个人尝试了很多中方法,不是无法实现,就是操作非常麻烦.最终放弃. 幸运的是,Python内置模块fileinput就可以轻松完成.代码如下: import fileinput for line in fileinput.input(r"D:\1.txt", inplace=1): pr

  • 对python pandas中 inplace 参数的理解

    pandas 中 inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改 inplace = True:不创建新的对象,直接对原始对象进行修改: ​inplace = False:对数据进行修改,创建并返回新的对象承载其修改结果. 默认是False,即创建新的对象进行修改,原对象不变,和深复制和浅复制有些类似. 例: inplace=True情况: import pandas as pd import numpy as np df=pd.DataFrame(np.rand

  • Python运算符之Inplace运算符的使用教程

    Python 在其定义中提供了执行就地操作的方法,即使用“ operator ”模块在单个语句中进行赋值和计算. 例如, x += y is equivalent to x = operator.iadd(x, y) 一些重要的就地操作: 1. iadd()  :- 该函数用于分配和添加当前值.该操作执行“ a+=b ”操作.在不可变容器(例如字符串.数字和元组)的情况下不执行分配. 2. iconcat()  :- 该函数用于在第二个末尾连接一个字符串 . # 演示 iadd() 和 icon

  • Python 运算符Inplace 与Standard 

    前言: 普通运算符执行简单的分配工作.另一方面,Inplace 运算符的行为类似于普通运算符,只是它们在可变和不可变目标的情况下以不同的方式运行. _add_方法进行简单的加法,接受两个参数,返回总和,并将其存储在另一个变量中,而不修改任何参数. 另一方面, iadd 方法也接受两个参数,但它通过将总和存储在其中来对传递的第一个参数进行就地更改.由于在此过程中需要对象突变,因此不可变目标(例如数字.字符串和元组)不应具有 iadd 方法. 普通运算符的“add()” 方法,实现“ a+b ”并将

  • Python运算符重载详解及实例代码

    Python运算符重载 Python语言提供了运算符重载功能,增强了语言的灵活性,这一点与C++有点类似又有些不同.鉴于它的特殊性,今天就来讨论一下Python运算符重载. Python语言本身提供了很多魔法方法,它的运算符重载就是通过重写这些Python内置魔法方法实现的.这些魔法方法都是以双下划线开头和结尾的,类似于__X__的形式,python通过这种特殊的命名方式来拦截操作符,以实现重载.当Python的内置操作运用于类对象时,Python会去搜索并调用对象中指定的方法完成操作. 类可以

  • Python运算符重载用法实例分析

    本文实例讲述了Python运算符重载用法.分享给大家供大家参考.具体如下: 在Python语言中提供了类似于C++的运算符重在功能: 一下为Python运算符重在调用的方法如下: Method         Overloads         Call for __init__        构造函数         X=Class() __del__         析构函数         对象销毁 __add__         +                 X+Y,X+=Y __

  • Python运算符重载用法实例

    本文实例讲述了Python运算符重载用法.分享给大家供大家参考.具体分析如下: python中,我们在定义类的时候,可以通过实现一些函数来实现重载运算符. 例子如下: # -*- coding:utf-8 -*- ''''' Created on 2013-3-21 @author: naughty ''' class Test(object): def __init__(self, value): self.value = value def __add__(self, x): return

  • Python运算符+与+=的方法实例

    Python 中如果需要对一个变量进行增量运算通常有两种写法,a = a + b 或 a += b.虽然两种方法能够得到同样的结果,但两者却并不完全等价. 加法运算符 + 对于 a = a + b 这条语句来说,实际上执行了两步操作,首先执行 a + b 求出两者的 和,然后再将结果通过赋值运算符 = 赋值给变量 a. 来看下面的示例: >>> a = 100 >>> b = 200 >>> id(a) 1796532544 >>>

  • 解决Python运算符重载的问题

    python进行有理数运算时,希望用运算符(+ - * /)描述计算过程. 只是用来写出更加自然的计算表达式.为此,python为所有算数运算符规定了特殊方法名.其中所有特殊的名字都以两个下划线开始,并以两个下划线结束,即: 当在Python中输入"a+b"时,程序发现使用了"+"运算符,因此就会调用"__add__"方法. 此时,若对自定义类中进行运算符的重载,则可以实现对类的打印.有理数运算等等. 其中,一个问题应当注意,如以下代码 clas

  • Python运算符重载的简单实例代码

    目录 什么是运算符重载 以__pow__为例 反向运算符的重载 总结 什么是运算符重载 让自定义的类生成的对象(实例)能够使用运算符进行操作 作用: 让自定义的实例像内建对象一样进行运算符操作 让程序简洁易读 对自定义对象将运算符赋予新的规则 算术运算符的重载: 方法名                  运算符和表达式      说明            __add__(self,rhs)        self + rhs        加法            __sub__(self,

  • python运算符+条件结构+循环结构

    目录 一,算术运算符 二,赋值运算符 三,比较运算符 四,逻辑运算符 五,位运算符 六,条件运算符 七,随机数 八,条件结构 1,if语句 2,if-else语句 3,if-elif-else语句 4,if嵌套 九,循环结构 1,while循环 2,循环终止 3,for循环 4,循环结合else使用 一,算术运算符  + - * / print(1+2)        相加 print("1"+"2")        拼接 print("1"+2

  • Python运算符的应用超全面详细教程

    目录 一.算术运算符 加号 + 乘号 * 除号 / 取余% 幂次运算 ** 取整 // 二.逻辑运算符 逻辑与 and 逻辑或 or 逻辑非 not 三.赋值运算符 四.成员运算符 五.身份运算符 六.比较运算符 七.三目运算符 八.运算符的优先级 总结 一.算术运算符 算术运算符是大部分情况下是实现对数值的运算,少部分可以实现对字符的操作 运算符符号 描述 + 加(可对字符进行拼接操作) - 减 * 乘(可对字符进行操作) / 除以 % 取余,返回除数的余数 ** 幂次运算 // 返回商的整数

随机推荐