1
10
这个
Python中的赋值总是将对对象的引用绑定到一个变量名,而从不意味着一个副本。
与C类似,请考虑Python变量始终是指针:
大致相当于:
|
2
7
不。 看到了吗 Python â==â vs âisâ comparing strings, âisâ fails sometimes, why? Python âisâ operator behaves unexpectedly with integers 它为什么对整数起作用(因此bools也是出于同样的原因)。 实施细节。
赋值总是通过引用。只有显式使用
编辑:通过引用,我并不意味着C++中的引用。Python的任务将 重新绑定 变量。更像是
|
3
1
如果你来自C或C++背景,那么很可能简单地解释Python中的所有变量都是指针。所以声明
确实大致类似于
这个
这个方案的一点复杂之处在于,如果对象是不可变的(例如整数),那么出于效率原因,上面的代码确实有点类似
因此,有时(但这是一个实现细节)不可变对象可能是同一个对象
更让人困惑的是,即使Python中的alla变量确实是指针,但令人惊讶的是Python中没有指针概念,换句话说,无法传递函数,在哪个变量中应该存储某些内容。
另一个额外的烦恼是,如果您真的需要为没有名称的局部变量(例如列表的元素)传递setter,那么它不能是匿名的
(好的。我撒谎了。。。确实可以使用
如果您想改为更改一个命名的local,这在python2.x中是不可能的(但是在python3.x和Python中是可能的)
关于何时执行复制以及何时只复制指针的问题,答案非常简单。Python从来不会自动生成副本。。。如果你想做一个拷贝,你必须自己明确地做。这就是为什么经常看到这样的代码:
这个
|
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |