python中的 += 与 +
python
2025-04-01 16:27:56 时间
大家好,又见面了,我是你们的朋友全栈君。
这一部分首先要理解python内存机制,Python中万物皆对象。
对于不可变对象,改变了原来的值,其别名(变量名)绑定到了新值上面,id肯定会改变
对于可变对象,+ 操作改变了值,id肯定会变,而+= 是本地操作,其值原地修改
对于+号操作,可变对象和不可变对象调用的都是__add__操作
对于+=号操作,可变对象调用__add__,不可变对象调用的是__iadd__(不可变对象没有__iadd__) __iadd__是原地修改
错误:
注意:一个函数内部的任何类型的赋值都会把一个名称划分为本地的。这包括=语句,import中的模块名称、def中的函数名称、函数参数名称等。如果在def中以任意方式赋值一个名称,它都将对于该函数称为本地的。
特别注意:原处改变的对象并不会把变量划分文本地变量,实际上,只是对变量名赋值才可以。例如变量名L在模块的顶层被赋值为一个列表,在函数内部的像L.append(x)这样的语句并不会将L划分为本地变量,而L=Y却可以。修改一个对象并不是对一个名称赋值。
变量名解析:LEGB原则:
在函数中使用未认证的变量名时,python搜索4个作用域:本地作用域(L),之后是上一层结构中的def或者lambda本地作用域(E),之后是全局作用域(G),最后是内置作用域(B)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155856.html原文链接:https://javaforall.cn
相关文章
- python操作ES数据库「建议收藏」
- Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
- RPC协议及其python实例[通俗易懂]
- python中删除特定字符串
- Python版PHP内置的MD5()函数
- 最强最炫的Python数据可视化神器,没有之一!
- python整除和取余写法_Python的整除和取余[通俗易懂]
- python线程间通信的方式_android 线程间通信
- python中bool()函数
- 6个可解释AI (XAI)的Python框架推荐
- python中astype用法_浅谈python 中的 type(), dtype(), astype()的区别[通俗易懂]
- Python嵌套函数与匿名函数
- Python 二进制,十进制,十六进制转换「建议收藏」
- Python实现AI视频识别——手势控制[通俗易懂]
- python 替换字符串中的元素「建议收藏」
- 【python实战】不让我复制?看我自制个带文字识别的截屏工具
- shell中调用python函数,发送邮件
- python button使用方法_python gui界面设计
- 桌面太单调?一起用Python做个自定义动态壁纸,竟然还可以放视频!「建议收藏」
- python 字符串(字符序列)和字节序列