Python学习笔记(三)——动态类型
动态类型:
Python的类型是在运行过程中中自动决定的,而不是通过类型声明语句的代码声明,与Java等语言有所区别。
Python类型原理:
>>> a=15>>>>>> a15>>>
Python赋值的操作:
创建一个对象来代表3;创建一个变量a,如果它还没有创建;将变量与新的对象3相连接。变量创建:
一个变量名a,代码第一次赋值它时创建了它。在之后的赋值会改变已创建的变量名赋值。
变量类型:
变量永远不会有任何的和它关联的类型信息或约束。Python类型的概念只存在与对象中而不是变量名中。
变量使用:
当变量出现在表达式中,会马上被当前赋值替代,无论这个对象是什么类型。所有的变量必须在其使用前明确赋值,使用未赋值的变量会产生错误。
>>> a15>>>>>> a=14>>>>>> bTraceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'b' is not defined>>>
注意:
类型属于对象,而不是变量。变量名没有类型。
对象垃圾收集:
在Python中,每当一个变量名被赋予一个新的对象,之前的那个对象占用的空间就会被回收(如果它没有被其他的变量名或对象所引用的话)。这种自动回收对象空间的技术叫做垃圾收集。
共享引用:
多个变量名引用相同的对象。
>>> a=11>>> b=a>>>>>> a,b(11, 11)>>>
共享引用和在原处修改:
在原处修改对象,共享引用时,会影响其他的变量。
>>> x=[1,2,3]>>> y=x>>>>>> x[0]='a'>>>>>> x,y(['a', 2, 3], ['a', 2, 3])>>>
避免共享引用修改变量的方式:
1.适用于序列的内置变量,(字典和集合不行。)
>>> x=[1,2,3]>>> y=x[:]>>>>>> x[0]='ye'>>> x,y(['ye', 2, 3], [1, 2, 3])>>>
2.使用copy方法(适用于各种内置类型):
>>> import copy>>>>>> x=[1,2,3]>>> y=copy.copy(x)>>> y=copy.deepcopy(x)>>>>>> x,y([1, 2, 3], [1, 2, 3])>>>>>> x[0]='51cto'>>>>>> x,y(['51cto', 2, 3], [1, 2, 3])>>>
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。