非常教程

Python参考手册

内置类型 | Built-in Types

Types: 10. memoryview type

10. memoryview type

2.7版本的新功能。

memoryview对象允许Python代码访问支持缓冲协议的对象的内部数据,而无需复制。内存通常被解释为简单的字节。

class memoryview(obj)

创建一个memoryview引用objobj必须支持缓冲区协议。支持缓冲协议的内置对象包括strbytearray(但不unicode)。

A memoryview具有元素的概念,元素是由原始对象obj处理的原子内存单元。对于许多简单的类型(如str和)bytearray,元素是单个字节,但其他第三方类型可能会暴露更大的元素。

len(view)返回内存视图中元素的总数,视图。该itemsize属性将为您提供单个元素中的字节数。

memoryview支持切片以显示其数据。采用单个索引将返回一个元素作为str对象。全切片将导致子视图:

>>> v = memoryview('abcefg')
>>> v[1]
'b'
>>> v[-1]
'g'
>>> v[1:4]
<memory at 0x77ab28>
>>> v[1:4].tobytes()
'bce'

如果memoryview结束的对象支持更改其数据,则memoryview支持片分配:

>>> data = bytearray('abcefg')
>>> v = memoryview(data)
>>> v.readonly
False
>>> v[0] = 'z'
>>> data
bytearray(b'zbcefg')
>>> v[1:4] = '123'
>>> data
bytearray(b'z123fg')
>>> v[2] = 'spam'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: cannot modify size of memoryview object

注意memoryview对象的大小不能被改变。

memoryview 有两种方法:

tobytes()

将缓冲区中的数据作为字符串(类的对象str)返回。

>>> m = memoryview("abc")
>>> m.tobytes()
'abc'

tolist()

将缓冲区中的数据作为整数列表返回。

>>> memoryview("abc").tolist()
[97, 98, 99]

还有几个只读属性可用:

format

包含struct视图中每个元素的格式(模块样式)的字符串。这默认为'B'一个简单的字节串。

itemsize

内存视图的每个元素的大小(以字节为单位)。

shape

一个整数元组,ndim表示将存储器的形状作为一个N维数组的长度。

ndim

一个整数,指示内存所代表的多维数组的维数。

strides

整数元组的长度,ndim以字节为单位给出数组中每个元素的每个元素的长度。

readonly

指示内存是否只读的布尔值。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法