纯粹的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绑定的主要内容,如果未能解决你的问题,请参考以下文章