非常教程

Python参考手册

数据类型 | Data Types

UserDict

源代码: Lib / UserDict.py

该模块定义了一个mixin,DictMixin为已经具有最小映射接口的类定义了所有的字典方法。这大大简化了编写需要替代字典的类(如搁置模块)。

该模块还定义了一个类,UserDict它充当字典对象的包装。这个类的需求在很大程度上被直接从dict(从Python 2.2版开始变得可用的功能)子类化的能力所取代。在引入之前dictUserDict该类用于创建类似字典的子类,通过覆盖现有方法或添加新方法来获得新的行为。

UserDict模块定义了这个UserDict类,并且DictMixin

class UserDict.UserDict([initialdata])

模拟字典的类。实例的内容保存在一个常规的字典中,通过实例的data属性可以访问该字典UserDict。如果提供initialdatadata则用其内容进行初始化; 请注意,对initialdata的引用将不会保留,允许将其用于其他目的。

注意

为了向后兼容,实例UserDict不可迭代。

class UserDict.IterableUserDict([initialdata])

它的子类UserDict支持直接迭代(例如for key in myDict)。

除了支持映射的方法和操作外(请参见映射类型 - 词典部分),UserDict并且IterableUserDict实例提供了以下属性:

IterableUserDict.data

用于存储UserDict课程内容的真正词典。

class UserDict.DictMixin

混入定义已经有一个最小词典界面包括类所有字典方法__getitem__()__setitem__()__delitem__(),和keys()

这个mixin应该被用作超类。添加上述每个方法都会逐渐增加更多的功能。例如,定义所有,但__delitem__()只会妨碍pop()popitem()从全接口。

除了四个碱基的方法,逐步更效率带有限定__contains__()__iter__(),和iteritems()

由于mixin不知道子类的构造函数,所以它没有定义__init__()copy()

从Python版本2.6开始,建议使用collections.MutableMapping而不是DictMixin

需要注意的是DictMixin没有实现viewkeys()viewvalues()viewitems()方法。

注意

当Python 2.2发布时,这个类的许多用例被list直接子类化的能力所包容。但是,少数用例仍然存在。

该模块提供了一个基础数据存储的列表接口。默认情况下,该数据存储是a list; 然而,它可以用来包围其他对象(如持久存储)的类似列表的界面。

另外,这个类可以与使用多重继承的内置类混合使用。这有时可能有用。例如,你可以继承UserList,并str在同一时间。这对于真实list和真实都是不可能的str

这个模块定义了一个充当列表对象的包装的类。对于自己的类列表类来说,它是一个有用的基类,可以从它们继承并覆盖现有方法或添加新类。通过这种方式,可以将新行为添加到列表中。

UserList模块定义了UserList类:

class UserList.UserList([list])

模拟列表的类。实例的内容保存在一个常规列表中,该列表可通过实例的data属性访问UserList。实例的内容最初设置为列表副本,默认为空列表[]列表可以是任何可迭代的,例如真正的Python列表或UserList对象。

注意

UserList班已经搬到了collections在Python 3模块的2to3的转换你的源代码到Python 3时,工具会自动适应进口。

除了支持可变序列的方法和操作(请参见序列类型 - str,unicode,list,tuple,bytearray,buffer,xrange),UserList实例还提供以下属性:

UserList.data

一个真正的Python列表对象,用于存储UserList该类的内容。

子类化要求:类需要UserList提供一个构造函数,可以使用无参数或一个参数来调用构造函数。返回新序列的列表操作尝试创建实际实现类的实例。为此,它假定构造函数可以用一个参数来调用,该参数是一个用作数据源的序列对象。

如果一个派生类不希望遵守这个要求,那么这个类支持的所有特殊方法都需要被覆盖; 请咨询消息来源,了解有关在这种情况下需要提供的方法的信息。

在版本2.0中进行了更改:Python版本1.5.2和1.6还要求可以不带参数地调用构造函数,并提供可变data属性。早期版本的Python没有尝试创建派生类的实例。

注意

UserString模块中的这个类仅可用于向后兼容。如果您编写的代码不需要与Python 2.2以前版本的Python一起工作,请考虑直接从内置str类型进行子类化,而不是使用UserString(没有内置的等价物MutableString)。

这个模块定义了一个充当字符串对象包装的类。对于自己的类字符串类来说,它是一个有用的基类,它可以继承它们并覆盖现有的方法或添加新的方法。通过这种方式,可以向字符串添加新的行为。

应该指出的是,与真正的字符串或Unicode对象相比,这些类非常低效; 这是尤其如此MutableString

UserString模块定义了以下类:

class UserString.UserString([sequence])

模拟字符串或Unicode字符串对象的类。实例的内容保存在一个常规字符串或Unicode字符串对象中,可以通过实例的data属性进行访问UserString。实例的内容最初设置为序列的副本。序列可以是常规的Python字符串或Unicode字符串,UserString(或子类)的实例,也可以是使用内置str()函数可以转换为字符串的任意序列。

注意

UserString班已经搬到了collections在Python 3模块的2to3的转换你的源代码到Python 3时,工具会自动适应进口。

class UserString.MutableString([sequence])

这个类是从UserString上面派生的,并重新定义了字符串是可变的。可变字符串不能用作字典键,因为字典需要不可变对象作为键。这个类的主要目的是作为一个继承和必要性的教育例子,去除(覆盖)该__hash__()方法,以便捕获使用可变对象作为字典键的尝试,否则这种方法很容易出错并且难以追踪。

自2.6版弃用:MutableString该类已在Python 3中删除。

除了支持字符串和Unicode对象的方法和操作外(请参阅字符串方法一节),UserString实例还提供以下属性:

MutableString.data

一个真正的Python字符串或Unicode对象,用于存储UserString该类的内容。

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()方法