python - 具有相同或新列表的新名称?
问题描述
如果我有x=['f', 1]
,那么module.x = x
module.x 会引用 x,还是会创建一个新列表来引用 x 列表中的对象?如果你得到我的问题。这就像绘制 Python 执行方式的图片一样。
解决方案
当我们这样做时:
x = ['f', 1]
- 它创建一个列表。
x
被分配它的reference
.
当我们这样做时:
module.x = x
module.x
被分配相同的参考。
因此,not
创建了一个新列表。
运行这段代码可以清楚地理解它:
class Temp:
def __init__(self):
self.x = None
x = ['f', 1]
print(id(x))
temp = Temp()
temp.x = x
print(id(temp.x))
assert id(x) == id(temp.x)
推荐阅读
- python - 如何对依赖于前一行值相乘的for循环进行pandadize?
- javascript - 关于检查多边形内点的问题 - javascript
- javascript - 为 React 组件库使用 Rollup
- python - Python - 如何利用多个 CPU 内核
- javascript - 扩展中的 Firestore API 密钥
- java - 如何在单一测试方法中使用多个数据提供者
- python-3.x - Cannot resize and save image of type .tif after patch extraction with tf
- optaplanner - 有问题的简单 TimeWindowedVehicleRoutingSolution 示例
- python - Flask 中的请求如何在多线程环境中工作?
- java - 如何使用 Mockito 验证在测试期间调用了 SUT 的另一个公共方法