Python 动态类型

Posted

tags:

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

  Python 动态类型

1、Python中,类型是在运行过程中自动决定的,并不需要提前在代码中声明。

2、所有变量必须在使用前明确的赋值,否则将会产生错误。#例:NameError: name ‘a‘ is not defined

3、赋值语句 a=3 代表了:创建一个对象代表3;创建一个变量a;将变量与新的对象3相连。实际上是到对象内存空间的一个指针!

4、上面的第3条可翻译为:变量是一个系统表的元素,拥有指向对象的链接的空间;对象是分配的一块内存,有足够空间来表示他们所代表的值;引用是自动形成的从变量到对象的指针。

5、对象结构 -- 对象头信息一般包含两个部分:一个类型标识符;一个引用的计数器(决定是否可以回收这个对象)

6、注意:※※※类型属于对象而不是变量※※※

In [1]: a=10

In [2]: print(a)
10

In [3]: a=‘spam‘

In [4]: print(a)
spam

In [5]: a=3.14159

In [6]: print(a)
3.14159

In [7]: a+10
Out[7]: 13.14159

In [8]:

7、当一个变量名被赋予了一个新的对象,原对象占用的空间就会被回收。#垃圾收集技术:自动清理引用计数器为零的对象。

8、有些对象的修改是共享引用,有些则是在原处修改,需要加以区分。

9、操作符 == 用来测试对象是否具有相同的值,操作符 is 测试两个变量名是否精确指向同一个对象。(小的整数和字符串存在缓存和复用,可能会出现is是相同的情况)

In [8]: x=[1,2,3,4]

In [9]: y=[1,2,3,4]

In [10]: x==y
Out[10]: True

In [11]: x is y
Out[11]: False

In [12]: x=42

In [13]: y=42

In [14]: x==y
Out[14]: True

In [15]: x is y
Out[15]: True

In [16]: x+=1

In [17]: print (x)
43

In [18]: print (y)
42

In [19]: x+=1

In [20]: x is y
Out[20]: False

 

++++++ The END ++++++

 

以上是关于Python 动态类型的主要内容,如果未能解决你的问题,请参考以下文章

13 个非常有用的 Python 代码片段

python在sqlite动态创建表源码

动态 Rstudio 代码片段

是否可以动态编译和执行 C# 代码片段?

在python 3.6中处理自定义编码时遇到类型错误

Python动态类型简介