一个示例程序及其应用程序,其中包含有关如何理解python中的名称绑定的数字



我已经阅读了许多关于python中名称绑定的教科书、文章和视频。

到目前为止,我所理解的可以总结如下:

CCD_ 1表示名称x被绑定到对象";1〃;

z=x,我们知道x=1

=>z=1,所以z=x意味着z被绑定到对象1

y=2
x=y

名称y绑定到对象";2〃;

名称x绑定到对象";2〃;

这就是我对名称绑定的全部理解。我看不出这个简单的概念在编程中有什么用处。这在我看来像数学。

  1. 我需要一个示例程序来理解我在这里提出的问题。

  2. 我需要1应用这个概念

  3. 我需要一个图来描述当我们声明变量x=1时,以及当我们后来做x=5时,我们做y=2,然后做x=y时,到底发生了什么。系统内部发生了什么?我想要有数字的。

正如您所指出的,编程与代数不同。下面是两者区别的一个例子:
x = 1
y = x
x = x + 1
y = x / 4
print(x)  # 2
print(y)  # 0.5

程序是修改计算机状态的一系列指令。在普通数学中,你不能说x = x + 1,这是荒谬的。但在程序的两行之间,时间已经过去,状态已经改变。你可以说x在某个时间等于某个东西,在另一个时间等于另一个不同的东西。

但是程序是抽象的。你用人类字母编写的Python代码将被编译成Python字节码,它将被解释为实际的指令,这些指令将从你的用户区进程分配的RAM传输到处理器核心,处理器核心将对其进行转换、解码和执行(我跳过了许多层和细节(。最终,当你用Python编写代码时,你在某种程度上是在远距离(隐喻性(指导你的处理器。名称绑定在Python语言级别上的含义取决于处理器中的工作方式。存在一些寄存器,一些在它们和RAM(之前的缓存层(之间移动数据的操作
Python不是理解所有这些的最佳语言,较低级别的语言是首选。中间立场是C语言,但最好的是Assembly
在金属级别上没有名称绑定,而是由大多数编程语言提供的函数性,因为大多数人更喜欢它们。但这只是为了方便。它的工作原理取决于语言。

在Python中,赋值有点棘手,因为它隐藏了是通过复制执行还是通过引用进行。这就是这个问题的原因。如果你想了解名称绑定是如何工作的,我建议你学习Python数据模型
此外,似乎还有一些与您想要的内容相关的StackOverflow问题,例如,请参阅此问题。

我没有按照指示回答你的问题,因为我认为这不尊重规则。

最新更新