目标和对象在赋值语句中是什么意思?

What does target and object mean in assignment statements?

提问人:gus 提问时间:10/20/2023 更新时间:10/20/2023 访问量:76

问:

https://docs.python.org/3/library/copy.html#module-copy

Python 中的赋值语句不会复制对象,而是创建对象 目标对象之间的绑定。对于符合以下条件的集合: 可变或包含可变项目,有时需要一个副本,因此 可以在不更改另一个副本的情况下更改一个副本。

如果我有以下代码:

variable1 = 'a string'

是目标对象,还是这两个术语指的是什么?variable1a string

我不想编写特定的代码或解决任何问题,只是了解文档,我是 Python 的初学者。

python 变量赋值 不可变性可变

评论

5赞 Raphael 10/20/2023
docs.python.org/3/reference/...... geeksforgeeks.org/......TL:DR:是的。此信息很容易找到。作为开发人员,一项关键技能是搜索信息。因此,下次尝试自己找到它。
0赞 gus 10/20/2023
嗨,@Raphael,我做到了,但在文档中,我对使用的术语感到惊讶
0赞 nigh_anxiety 10/20/2023
@gus 他们之所以将其称为“对象”,是因为 Python 中的所有内容都是类的实例,包括原始数据类型(int、bool、float、None 等)、函数、方法和类。示例:,其中是所有类的基元类,type(5) # <class 'int'>type(int) # <class 'type'>typetype(len) #<class 'builtin_function_or_method'>
0赞 gus 10/21/2023
嗨,@nigh_anxiety,我知道,让我感到困惑的是在这种情况下的“目标”一词。

答:

2赞 RandomCoder368 10/20/2023 #1

你是对的,目标是一个变量,一个值是对象。目标绑定到变量。对于额外的上下文,复制模块会创建一个新对象,以便您可以更改一个对象而不会影响另一个对象。

评论

1赞 chepner 10/20/2023
为了完整起见,目标可以是名称 ()、索引表达式 ()、属性 () 或这三者中的任何一个逗号分隔序列。(序列也可以用括号或括号括起来,而不暗示任何关于元组、列表等的内容)aa[3]a.bar
0赞 gus 10/20/2023
例如,您所说的“逗号分隔序列”是指 ,对吧?@chepnerlist
2赞 chepner 10/20/2023
它看起来像一个列表,但实际上并非如此。 不会在任何地方创建列表:元组被创建,但会立即解压缩为两个名称和 ; 并且会表现得相同。括号/括号仅供显示。[a, b] = 1, 21, 2aba, b = ...(a, b) = ...
0赞 gus 10/21/2023
好吧,现在我明白了,我以为你的意思是列表@chepner