首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python +=运算符在使用函数返回值时的行为有所不同

在Python中,+=是一个复合赋值运算符,用于将右侧的值与左侧的变量相加,并将结果赋值给左侧的变量。当使用+=运算符来使用函数返回值时,其行为取决于函数返回值的类型。

如果函数返回的是一个可变对象(如列表、字典等),+=运算符会修改原始对象,将函数返回的值添加到原始对象中。例如:

代码语言:txt
复制
def get_list():
    return [1, 2, 3]

my_list = [4, 5]
my_list += get_list()
print(my_list)  # 输出 [4, 5, 1, 2, 3]

在上面的例子中,get_list()函数返回一个列表[1, 2, 3],然后使用+=运算符将其添加到my_list列表中,结果是my_list变成了[4, 5, 1, 2, 3]

然而,如果函数返回的是一个不可变对象(如数字、字符串等),+=运算符会创建一个新的对象,并将新对象赋值给左侧的变量。原始对象不会被修改。例如:

代码语言:txt
复制
def get_number():
    return 10

my_number = 5
my_number += get_number()
print(my_number)  # 输出 15

在上面的例子中,get_number()函数返回数字10,然后使用+=运算符将其与my_number相加,得到新的值15,并将其赋值给my_number

总结起来,+=运算符在使用函数返回值时的行为取决于返回值的类型。对于可变对象,+=会修改原始对象;对于不可变对象,+=会创建一个新的对象。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 实验二 Python运算符和内置函数使用Python程序设计》实验指导书

    实验二 Python运算符和内置函数使用 一、实验目的和要求 (一)熟练掌握运算符使用。 (二)熟练掌握内置函数使用。...二、实验内容 (一)输入三角形3个边长a、b、c,求三角形面积area。利用如下海伦公式求三角形面积。 韩信点兵问题。 韩信兰陵和项羽军队打了一仗。...表2-6 同一性运算符 运算符 含义 优先级 结合性 is 相同 相同 左结合 is not 不相同 (二)Python常用内置函数 Python常用内置函数及用法如表2-7所示。...表2-7 Python常用内置函数 内置函数 说明 内置函数 说明 len(列表) 返回列表中元素个数,同样适用于元组、字典、集合、字符串等。...num = input("请输入一个自然数:")    # 读取用户输入字符串 # 使用map函数完成对每一个字符整型转换,再使用sum对每一位求和 print(sum(map(int,num)))

    22210

    hive(3)——hive中使用自己写函数python实现)

    如果我们想在hive中添加自己写函数,可用如下方法: 前提:已经开启hdfs,yarn服务,并且关闭safe模式,打开mysql ps:udf是mapper类型,进来一个数据,出去一个数据 (...1)用python写好想要实现函数 这里我测试表是这样一份表,我想让此表state字段都变成大写,所以我编辑了如下python脚本: ?...) 这份文件本地路径下 ?...可见,california和colorado已经大写,成功输出,这里要使用TRANSFORM 前面的‘()’参数是你表中字段,也就是desc查出来字段,而后面的‘()’参数是你pyhon脚本里输出参数...可以yarn可视化界面查看该任务: ?

    1.2K00

    使用Python标准库函数os.listdir()4个注意事项

    标准库函数os.listdir()是文件操作和文件遍历时常用函数之一,用来获取指定文件夹中所有文件和子文件夹名称组成列表,完整语法为: listdir(path=None) os.listdir...()函数使用时应注意以下几个问题: 1)函数参数path值可以是字符串或字节串,如果使用字符串指定文件夹则返回列表中都是字符串形式文件和子文件夹名字,如果使用字节串指定文件夹则返回列表中都是字节串形式...如果需要遍历子文件夹中内容,可以使用深度优先或广度优先遍历目录树方法,详见:Python使用广度优先和深度优先两种方法遍历目录树 3)listdir(path)函数返回列表中路径都是相对于参数...如果需要的话(例如按文件名编号升序排序后导入其他文件或系统),可以对列表中字符串进行排序之后再使用。 假设Python安装目录中有test子文件夹,内容如下(随机生成文件名): ?...使用listdir()函数获取其中文件名以及不同排序规则显示效果演示如下: ?

    5.4K10

    python函数一定条件下需要调用自身写法说明

    此时箭头所指地方,所输入0传给了其他条件下,第二次运行函数状态下,第一个状态仍为1,并未改变,因此退出了第二次运行函数后,仍然会继续运行第一个函数中state = 1循环,导致还得再次输入...0去改变state值才能停止运行 因此,再次调用该函数语句后面,应该加一句breaK语句,直接退出当前循环,避免出现函数执行效果达不到预期效果, 加入break以后截图: ?...break为跳出本层循环,只影响一层 continue为跳出本次循环,进行下一次循环 return为为直接跳出当前函数 补充知识:python中调用自己写方法或函数function 一、command...中调用 1 终端里先用 cd 指令到指定路径(D盘) 2 切到 python 交互环境下,输入 import myfunc (如果 myfunc.py 是你文件全名的话) import myfunc...写函数一定条件下需要调用自身写法说明就是小编分享给大家全部内容了,希望能给大家一个参考。

    1.1K20

    python3中使用shuffle函数要注意地方

    1 shuffle函数与其他函数不一样地方 shuffle函数没有返回值!shuffle函数没有返回值!shuffle函数没有返回值!...仅仅是实现了对list元素进行随机排序一种功能 请看下面的坑 1.1 误认为shuffle函数会有一个返回值错误例子 num1 = list(range(1,39526)) #产生1-39525数...1.2 正确使用shuffle函数例子 num1 = list(range(1,39526)) #产生1-39525数 random.shuffle(num1) #注意shuffle没有返回值,该函数完成一种功能...补充拓展:对python使用shuffle和permutation对列表进行随机洗牌区别 函数:shuffle将列表所有元素随机排序,不生成新数组返回 示例: import random list...以上这篇python3中使用shuffle函数要注意地方就是小编分享给大家全部内容了,希望能给大家一个参考。

    2.6K30

    Python常见基础知识点汇总(建议时常翻阅)

    2.不同点 1)表示方式上有所不同 · 字符串使用""、''、"""、''’等表示。 · 列表使用[ ]表示。 · 元组使用()表示。 · 字典使用{}表示。 · 集合使用{}表示。...进行取整除法运算,对结果不进行“四舍五入”处理,而是采用简单取整办法。 >>> 13/7 1.8571428571428572 >>> 13//7 1 >>> 2....*运算符 *既是乘法运算符,也是重复运算符。对于Python字符串、列表、元组等对象,均可使用*进行重复运算,语法为:可重复对象*n,其中n为重复次数。...每种语言不等于运算符有所不同,因此,不要想当然地将其他语言运算符使用Python程序中。...成员运算符共有两个:in和not in。 Python成员运算符使用语法如下: x [not] in y 成员运算返回值只能是True或False。 ----

    85141

    python之input()函数使用——终端输入想要值,小白也能学会python之路

    前言 漫漫python路开始,作为一个程序员,要写了前端,做了后端,写了sql,懂了部署,最近火热python当然也要搞起来,所以不得不折腾起来了。...来,左边跟我一起学java,右边一起从小白学python,一起学习,一起成长 一、input初级使用 今天学习了input()函数用法,是一个终端输入字符串函数,即代码运行后,由用户电脑上输入指定操作...例如 我电脑上提示:刘德华和吴彦祖你喜欢哪一个呢 输入:吴彦祖 输出:吴彦祖,我喜欢你 首先我们对input()函数结果进行赋值,然后使用input()函数搜集信息,最后再用print()函数输出结果...同样终端输入都是1,但是由于代码不同,一个是字符串1,一个是整数1,所以导致运行结果不一样, 原因是:input()函数输入值,永远会被【强制性】地转换为【字符串】类型。...虽然终端得到输入值是字符串,但是我们可以input()函数外加一个int()强转成整数类型,就可以变成想要其他类型啦 temp = int(input('请输入1或2:')) print(type

    3.7K20

    C++从入门到精通——类6个默认成员函数之赋值运算符重载

    class Date {}; 一、运算符重载 定义 C++为了增强代码可读性引入了运算符重载,运算符重载是具有特殊函数函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通函数类似...相似点 函数重载和运算符重载某些方面是相似的,它们都是通过改变函数运算符行为来提供更灵活功能。 名称相同:函数重载和运算符重载都是使用相同名称来定义多个不同行为。...增加可读性:函数重载和运算符重载可以使代码更具可读性,因为可以根据函数名或运算符符号来推测其功能。 尽管函数重载和运算符重载某些方面相似,但它们目的和应用场景有所不同。...总结 函数重载:可以让函数名相同,参数不同函数同时存在 运算符重载:让自定义类型可以使用运算符,并且控制运算符行为,增强可读性 他们之间各论各,没有关系 多个同一运算符重载可以构成函数重载...,但调用函数该参数不用传递,编译器自动传递 // 注意:后置++是先使用后+1,因此需要返回+1之前旧值,故需实现时需要先将this保存一份,然后给this + 1

    12510

    介绍Python魔术方法 - Mag

    在对象生命周期结束, __del__会被调用,可以将__del__理解为"析构函数". __del__定义是当一个对象进行垃圾回收时候行为。 有一点容易被人误解, 实际上,x....描述器对象可以访问到其拥有者实例属性,比如例子中Footinstance.meter。 面向对象编程,如果一个类属性有相互依赖关系使用描述器来编写代码可以很巧妙组织逻辑。...__reduce__(self) 如果pickle数据包含了自定义扩展类(比如使用C语言实现Python扩展类),就需要通过实现__reduce__方法来控制行为了。...由于使用过于生僻,这里就不展开继续讲解了。 令人容易混淆是,我们知道, reduce()是Python一个內建函数, 需要指出__reduce__并非定义了reduce()行为,二者没有关系。...要了解这个方法,需要先了解coerce()内建函数: 官方文档上解释是, coerce(x, y)返回一组数字类型参数, 它们被转化为同一种类型,以便它们可以使用相同算术运算符进行操作。

    1.2K20

    Python魔法属性

    魔法属性和方法是Python内置一些属性和方法,有着特殊含义。命名前后加上两个下划线,执行系统特定操作,会自动调用。...注:此方法一般无须定义,因为Python是一门高级语言,有 内存管理、垃圾回收机制,程序员使用时无需关心内存分配和释放,因为此工作都是交给Python解释器来执行,所以,__del__ 调用是由解释器进行垃圾回收自动触发执行...__enter__(self): 定义了当使用 with 语句时候,会话管理器块被初始创建要产生行为。请注意,__enter__ 返回值与 with 语句目标或者 as 后名字绑定。...__copy__、__deepcopy__ 有时候,尤其是当你处理可变对象,你可能想要复制一个对象,然后对其做出一些改变而不希望影响原来对象。这就是Pythoncopy所发挥作用地方。...math.trunc() 函数行为 双目运算符函数 方法 作用 __add__(self, other) 实现一个加法 __sub__(self, other) 实现一个减法 __mul__(self

    50120

    Python魔法属性

    魔法属性和方法是Python内置一些属性和方法,有着特殊含义。命名前后加上两个下划线,执行系统特定操作,会自动调用。...注:此方法一般无须定义,因为Python是一门高级语言,有 内存管理、垃圾回收机制,程序员使用时无需关心内存分配和释放,因为此工作都是交给Python解释器来执行,所以,__del__ 调用是由解释器进行垃圾回收自动触发执行...__enter__(self): 定义了当使用 with 语句时候,会话管理器块被初始创建要产生行为。请注意,__enter__ 返回值与 with 语句目标或者 as 后名字绑定。...__copy__、__deepcopy__ 有时候,尤其是当你处理可变对象,你可能想要复制一个对象,然后对其做出一些改变而不希望影响原来对象。这就是Pythoncopy所发挥作用地方。...math.trunc() 函数行为 双目运算符函数 方法 作用 __add__(self, other) 实现一个加法 __sub__(self, other) 实现一个减法 __mul__(self

    47520

    Python魔法属性

    魔法属性和方法是Python内置一些属性和方法,有着特殊含义。命名前后加上两个下划线,执行系统特定操作,会自动调用。...注:此方法一般无须定义,因为Python是一门高级语言,有 内存管理、垃圾回收机制,程序员使用时无需关心内存分配和释放,因为此工作都是交给Python解释器来执行,所以,__del__ 调用是由解释器进行垃圾回收自动触发执行...__enter__(self): 定义了当使用 with 语句时候,会话管理器块被初始创建要产生行为。请注意,__enter__ 返回值与 with 语句目标或者 as 后名字绑定。...__copy__、__deepcopy__ 有时候,尤其是当你处理可变对象,你可能想要复制一个对象,然后对其做出一些改变而不希望影响原来对象。这就是Pythoncopy所发挥作用地方。...) 函数行为 __floor__(self) 实现 math.floor() 函数行为 __ceil__(self) 实现 math.ceil() 函数行为

    1.1K01

    Python程序与设计

    2-27 命令行窗口中启动Python解释器中实现 Python自带IDLE中实现 print("Hello world") 编码规范 每个import语句只导入一个模块,尽量避免一次导入多个模块...不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行 建议每行不超过80个字符 使用必要空行可以增加代码可读性 运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔 避免循环中使用...+和+=运算符累加字符串 适当使用异常处理结构提高程序容错性 保留字与标识符 概念:保留字是Python语言中已经被赋予特定意义一些单词,开发程序时,不可以作为变量、函数、类、模块和其他对象名称来使用...不要在行尾添加分号“:”,也不要用分号将两条命令放在同一行 建议每行不超过80个字符 使用必要空行可以增加代码可读性 运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔 避免循环中使用...基本输入和输出: 输入函数 指提示文字 返回值:字符串类型值 输出函数 指打印文字 如果有多个参数,依次进行打印,使用空格进行分隔 没有返回值 打印到本地磁盘文件当中 fp = open(r"E:

    19740

    图像凸性检测函数convexityDefectsPython2.7下使用opencv3.0问题

    最近在学习PythonOpenCV,图像凸性检测中,发现opencv3.0下convexityDefects函数对图像凸性缺陷处理有错误。...不知道是opencv3.0版本问题还是我个人错误代码。...例如使用Python版本是2.7.6,使用OpenCV版本是3.0,以下是图像凸性检测代码: import cv2 import numpy as np img = cv2.imread(...而如果使用OpenCV2.4.13版本,以下是图像凸性检测代码: import cv2 import numpy as np img = cv2.imread('star2.png') img_gray...总结: 出现这样问题是因为OpenCV3.0版本还不够稳定还是我编程错误呢?不知道各位有没有遇到类似的问题,特此提出来,希望大家讨论一下!

    1.3K00

    首先得声明一下,本文不是Python

    首先,一些关于字符串 “基本” 操作 1 ? 2 ? 3 ? 说明: 1. 这些行为是由于 Cpython 在编译优化时,某些情况下会尝试使用已经存在不可变对象而不是每次都创建一个新对象。...这意味着在编译表达式 'a'*20 会被替换为 'aaaaaaaaaaaaaaaaaaaa' 以减少运行时时钟周期,只有长度小于 20 字符串才会发生常量折叠。 关于函数返回值—— ?...函数返回值由最后执行 return 语句决定。由于 finally 子句一定会执行,所以 finally 子句中 return 将始终是最后执行语句。 关于类本质 ? 输出: ?...说明: 当调用 id 函数Python 创建了一个 WTF 类对象并传给 id 函数. 然后 id 函数获取其 id 值(也就是内存地址),然后丢弃该对象,该对象就被销毁了。...当我们连续两次进行这个操作Python 会将相同内存地址分配给第二个对象。因为( CPython 中)id 函数使用对象内存地址作为对象 id 值,所以两个对象 id 值是相同

    50810
    领券