Python中一切皆对象,而一切对象皆有类型,而类型对象也有类型,理解起来有点绕!
常用的类型有int、float、long、string、list、tuple、dict这些,而我们可以将这些类型分为以下2类:
1. 定长类型
int、float、long这些都是定长类型,且是不可变类型,即我们无法对这些类型的对象进行原地修改,我们通常看到的修改都是通过创建一个新的对象来实现的; 如下我们对一个long型的变量a进行加1操作,我们可以看到a所指对象的内存地址发生了变化
>>> a=100l >>> type(a) <type 'long'> >>> id(a) 6432 >>> a+=1 >>> id(a) 6464
讯享网
2. 变长类型
string、list、tuple、dict这些属于变长类型,我们所谓的定长变长并非指对象占用的内存是否可变,而是指对象中包含的基本元素个数在创建时是否固定;举栗子,int在创建时永远只会包含1个基本元素(整数),而string在创建时可以包含任意个基本元素(字符),所以通常来说容器类型都属于变长类型
变长类型可继续分为可变类型和不可变类型:
string和tuple是典型的不可变类型,而list和dict则是可变类型
我们在学习CPython源码时要对定长变长类型概念有所理解,那么在查看objects的实现时才会不感到迷糊;
而可变不可变类型的理解则对我们编写Python脚本大有裨益

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/12861.html