python3数据模型
来源:互联网 发布:wifi搞怪软件下载 编辑:程序博客网 时间:2024/05/28 15:08
python3手册的目录
对象, 值和类型
对象是 Python 的抽象数据类型, 所有的数据在 Python 程序中都表示为对象和对象之间的关系.
每个对象都有一个唯一标识数字ID, 一个类型和一个值. 当一个对象被创建后, 它的标识就固定下来,不会改变. 我们可以认为ID是对象在内存中的地址. Python的is
操作符就是比较的这个ID(比如: a is b
), 如果我们想得到这个ID可以使用内建函数id()
, 如:id(a)
, 查看16进制可以使用hex(id(a))
在CPython中, id(a)
就是a
的内存地址
查看对象的类型使用type(a)
容器 container, 可变性 mutability
容器可以包含对其他多个对象的应用. 比如list, tuple
等. 有些容器的不可变的, 比如 tuple
, 可变的比如 list
, 对于tuple, 如果他内部引用了可变的对象, 那么, 我们改变这个可变的对象, tuple的值也会变. 但tuple无法增加减少元素.
In [11]: a =[1,2,4]In [12]: b=[3,4,5]In [13]: c=a,b,In [14]: cOut[14]: ([1, 2, 4], [3, 4, 5])In [15]: a.append(5)In [16]: cOut[16]: ([1, 2, 4, 5], [3, 4, 5])
可变 mutable , 不可变 immutable
- 对于不可变的类型(例如int): 执行代码
a=1;b=1
现在
id(a)有可能等于id(b), 也可能不等于. - 对于可变的的类型(例如list): 执行代码
c=[];d=[]
那么c和d一定是2个不同的list, 各自有独立的内存空间.
标准库中的类型
Ellipsis
>>> ...Ellipsis
这个Ellipsis
也可以写成...
, Ellipsis
类型只有一个示例就是Ellipsis
, 可以用来作为函数的返回值. 类似 “nop” 一样的占位符. 替代 pass
def will_do_something(): ...
不可变序列 Immutable sequences
- str()
- tuple()
- bytes()
可变序列 Mutable sequences
- list()
- bytearray()
- array模块
集合类型
- Sets (mutable set)
- set()
- Frozen sets (immutable set)
- frozenset()
字典
- dict
- collections模块
- OrderedDict
- defaultdict
- ChainMap
模块
m.x
等于m.__dict__['x']
使用模块的m.__dict__
时要注意, 如果模块不在可访问的范围, 那么就算有引用指向了模块的__dict__
, 这个__dict__
也会被清空.
I/O对象(也叫文件对象)
一个文件对象代表着一个打开的文件或者套接字, 并有一个文件描述符fd
与这个打开的文件对应. 我们打开一个磁盘文件可以使用open()
内建函数. socket.makefile()
函数用来打开一个套接字.
阅读全文
0 0
- python3数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- 数据模型
- Linux串口驱动程序(6)-串口驱动实现
- 2017年的小目标---by Paul
- LeetCode | 57. Insert Interval
- 解决vue-cli在ie9+中无效的问题
- ssm 整合 redis(简单教程)
- python3数据模型
- Spring实现AOP的多种方式
- 1.[easy] Two Sum
- Java Condition 的await(), singal(), singalAll() 具体代码实现分析,
- Room---SQLite库
- 【从入门到放弃】WEB前端之HTML+CSS基础01
- Volley源码解析 --- Volley组成(1)
- 超出内容之后 省略号(...) --ellipsis
- OSI七层与TCP/IP五层网络架构详解