“使用”和“重新绑定”变量的含义和区别是什么?

2024-04-27 13:02:33 发布

您现在位置:Python中文网/ 问答频道 /正文

简而言之,来自Python:

Eschew global

Never use global if the function body just uses a global variable (including mutating the object bound to that variable, when the object is mutable).

Use a global statement only if the function body rebinds a global variable (generally by assigning to the variable’s name).

“使用”和“重新绑定”变量的含义和区别是什么?在

“改变绑定到变量的对象”是使用变量还是“重新绑定”变量?为什么?在


Tags: thetoifobjectusefunctionbodyvariable
2条回答

使用变量

当你使用一个变量时,就是在使用变量的实际值——它所指的对象——或者改变变量名所指的对象。下面是一个例子:

>>> var1 = 1
>>> var2 = [1]
>>> 
>>> def func():
    print(var1)
    var2.append(2)


>>> func()
1
>>> var2
[1, 2]
>>> 

在上面的例子中,func内部使用var1和{}。我们使用var1,因为我们在对print的调用中使用了它的值。我们使用var2,因为我们改变了它所指的对象。注意,我们没有更改var2引用的对象,而是使用已经存在的对象并对其进行了修改。还请注意,我们从未尝试将新的值赋给这两个变量。在

重新绑定变量

当你重新绑定一个变量时,你正在改变变量名所指向的对象。下面是另一个例子来说明这一点:

^{pr2}$

在上面的例子中。我们正在重新绑定var内部的funcvar1用于引用对象1,但由于我们将var1重新绑定到{},它现在引用对象{}。在

有什么区别?在

不同之处在于,当我们使用变量时,我们只是使用变量已经引用的对象。当我们重新绑定一个变量时,我们会更改该变量引用的对象。在

“Mutate”和“bind”/“rebind”是两个互斥的操作。变异改变了一个对象,而绑定改变了一个名称。在

这是有约束力的:

a = []

这是变异的:

^{pr2}$

“使用”是指访问绑定到某个名称的现有对象,无论是为了阅读还是为了变异。在

相关问题 更多 >