Learning Python 之 Python中的对象分类
来源:互联网 发布:求多维数组最大值 编辑:程序博客网 时间:2024/05/17 07:37
Python中的对象之间有联系也有区分,如字符串和列表都可以执行切片、索引等操作,说明字符串和列表之间是有关系的,那么理清这些关系有助于我们更好的理解python。
我们知道,字符串是不可变类型(immutable)的序列(sequences):字符串不能够在内存中直接改变(例如:>>> 'python'[0] = m
这个操作并不能够改变python这个字符串对象,不可变性是不可变类型的属性);字符串是有序的按位置排列的集合体(collections),可以通过偏移量访问其中的不同部分(序列类型的属性)。相同的类型之间有共同的属性,他们可以执行一些相同的操作,就像字符串和列表一样。
分类图:
类型
数字:(整数、浮点数、decimal、分数等)
支持加减等操作
序列:(字符串、列表和元组)
支持索引、切片、连接等
映射mappings:(字典)
支持通过键值索引等
值得注意的是,集合(sets)即不是序列,它是无序的;也不是映射,它不支持键值索引,它自成一类(a category unto themselves)。
可变性(Mutable?)
可变类型(Mutable)和不可变类型(Immutable)在Python是一个十分重要的概念。如果一个对象是不可变类型,那么就不能够直接改变他的值(可以通过赋值覆盖,等于创建了一个新的对象),否则会抛出错误,就像这样:
>>> 'python'[0] = 'm'Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: 'str' object does not support item assignment
这两类的具体划分:
不可变类型:(数字、字符串、元组和forzensets)
该类型的对象都不支持直接改变内容或本身(cannot in-place change)。如果需要的话我们可以通过创建一个新对象覆盖原来的对象来实现。
可变类型:(列表、字典、集合和bytearray)
相反的,该类型的对象可以通过操作直接改变,而不需要创建一个新对象,尽管这类对象也支持复制,但可变类型的对象可以直接修改。
阅读全文
0 0
- Learning Python 之 Python中的对象分类
- python对象类型分类
- Python对象分类
- Learning Python Part III 之 Import 中的模块文件选择
- Learning Python
- Learning Python
- Learning Python
- Learning Python
- python learning
- Learning Python
- Learning Python
- Learning Python
- python learning
- Python learning
- Learning Python
- Python Learning
- python learning
- python中的函数对象
- 二分查找法
- Devops学习实践(七)Jenkins 集成 Sonar
- 分享一些阅读外文文献的经验(整理)
- C++ 类的继承
- NOIP 2017.10.4 总结+心得
- Learning Python 之 Python中的对象分类
- c语言有关操作符(运算符)的简单介绍
- 初窥javaScrit权威指南,第五章语句
- 牛客_3
- gcc-2.95.3编译-同时编译linux2.6.30版本内核
- [Python]网络爬虫(一):抓取网页的含义和URL基本构成
- Kotlin学习笔记(2)-方法,变量
- 3DES实现加密算法
- 堆排序