Python学习——动态类型简介

来源:互联网 发布:网络盈利模式 编辑:程序博客网 时间:2024/05/18 03:00

变量、对象和引用:


a = 3(不需要提前声明变量)

变量在赋值的时候才被创建,它可以引用任何类型的对象,并且必须在引用之前赋值。

他们三者之间的关系:

变量是一个系统表的元素,拥有指向对象的连接的空间;

对象是分配的一块内存,有足够的空间去表示他们所代表的值;

引用是自动形成的从变量到对象的指针;

变量名没有类型,类型属于对象而不是变量名,赋值只是将变量修改为不同对象的引用。


共享引用:


>>>a = 3

>>>b = a

这两句话执行之后的效果就是a指向了对象3,b也指向了对象3;

>>>a = ‘spam’

这句话执行 之后的效果就是a指向了对象spam;

>>>L1 = [2,3,4]

>>>L2 = L1

现在L1和L2都指向了同一个列表[2,3,4],如果这个时候修改了L1中的某个值;

>>>L1[0] = 24

>>>L2

[24,3,4]

因为L1和L2都指向了同一个对象,所以对L1的修改也会修改掉其他的引用;

如果我们不想这样的情况发生,就需要Python去拷贝对象,而不是创建引用。拷贝的方法有很多,其中最常用拷贝列表的方法就是从头到尾的分片。

>>>L2 = L1[:]

这样修改了以后,L1的修改就不会对L2有影响,因为L2引用的是L1的一个拷贝,也就是他们指向了不同的内存区域。


==和is:

==表示的是检测的两个被引用对象是否含有相同的值,而is表示的是两个被引用对象是否精确的同一(例如,两个变量名精确的指向同一个对象)


原创粉丝点击