纯粹的python绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纯粹的python绑定相关的知识,希望对你有一定的参考价值。

目前很多学习资料这样解释赋值与绑定,当是一个简单变量时,是赋值,当是复合变量时,是绑定。

注:赋值是重新复制变量到新变量中,赋值前后两个变量之间无联系。例C语言中:

int a=6;

int b;

b =a;

此时b和a是两个毫不相干的变量,改变b的值不影响a;

绑定只是将一个变量绑定到一个新的名称,例如C++语言中的

int a=6;

int &b=a;(此处&表示引用)

此时b就是a的一个别名,当改变b的值时,a的值会随之改变;

在python具有以下特性

1)对于简单变量:

>>> a=7
>>> b=a
>>> b=6
>>> b
6
>>> a
7

对于复合变量

>>> c=[1,2]
>>> d=c
>>> d[1]=7
>>> d
[1, 7]
>>> c
[1, 7]
故有些人依次认为简单变量是赋值,即b的改变不影响a,两个变量之间相互独立;而复合变量则是绑定,d的改变影响了c,两者都是指向同一变量,是同一变量的不同名称而已。

但python是一门很纯粹的语言,如此理解是非常不对的。

请看:

技术分享

>>> a=7
>>> b=a
>>> id(a)
31892112
>>> id(b)
31892112
>>> b=4
>>> id(b)
31892148

所以当运行b=4时,此时是因为b这个名称重新绑定到变量4上了,指向了另一个变量,而a依旧指向之前的变量,所以两者之间互不相同。

由此可见,python之中只有绑定,不管是简单变量还是复合变量。

技术分享

 






















以上是关于纯粹的python绑定的主要内容,如果未能解决你的问题,请参考以下文章

Python描述符 (descriptor) 详解

python写一个循环1+到10打印计算步骤的脚本——纯粹无聊玩的

python输出一到一百的中文汉字

Python学习之绑定方法与非绑定方法

Python 绑定:从 Python 调用 C 或 C++

Python3.7之绑定方法与非绑定方法