首页 / PYTHON / Python的动态类型
Python的动态类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python的动态类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含945字,纯文字阅读大概需要2分钟。
内容图文
动态类型:
在python中,类型是在运行过程中自动决定的,而不是通过代码声明的。
变量:
变量是一个系统表的元素,拥有指向对象的连接的空间
python中,类型的概念是存在于对象中的,而不是变量中,变量是通用的。
变量的使用:
当变量出现在表达式中时,它会马上被当前引用的对象所代替,无论这个对象是什么类型。
并且所有变量使用前必须先赋值。
例子:
a=3
1.分配一块内存来表示对象3;
2.创建一个变量a;
3.将变量和对象3连接起来;
对象:
1.对象时被分配的一块内存,有足够的空间去表现他们所代表的值。
2.对象=值+头部信息。头部信息有两个:一个是类型标志符,一个是引用的计数器。
3.对于小的整数和字符串,Python会缓存并复用(即创建一个42,如果对象42的引用计数器为0了,它不会马上回收垃圾,而是短暂存在一个地方,等待其他变量引用)
对象的垃圾回收机制:
当一个对象身上的引用计数器为0时,会被自动回收
共享引用:
在Python中,给一个变量赋新值,并不是替换了原始的对象,而是让这个变量去引用另一个新对象。
不可变类型:
a=3
b=a
a=a+2
1.创建对象3,变量a引用对象3;
2.正如前面所说,当变量出现在表达式中时,它会马上被当前引用的对象所代替,无论这个对象是什么类型。
所以b=a时,直接替换成b=3,此时a和b共同引用了对象3;
3.同2,a=a+2直接看成a=3+2=5,此时a引用了新的对象5,而b还是引用对象3.
可变类型:
a1=[1,2,3]
a2=a1
a1[0]=4
执行a1[0]=4这句时,因为列表是可变的,所以对象[1,2,3]直接在原处修改成[4,2,3],此时a1,a2的应用并没有变,
所以a1修改,a2也变了。
(如果不想要这种现象发生,就需要Python拷贝对象,而不是创建引用,比如从头到尾的分片a2=a1[:],(如果是字典就用对象.copy()),
此时a1改变,a2还不变,因为a2=a1[:],a1,a2 并不是引用通一份对象,而是另外复制一份新的对象[1,2,3],然后让a2引用它
)
原文:http://www.cnblogs.com/yangyongbo/p/7276966.html
内容总结
以上是互联网集市为您收集整理的Python的动态类型全部内容,希望文章能够帮你解决Python的动态类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。