5.3.7 UserDict对象


用户自定义字典类UserDict,它是封装了一个字典类dict。主要使用来拷贝一个字典的数据,而不是共享同一份数据。

class collections.UserDict([initialdata])

本类主要模拟一个字典。在类成员data里拷贝了一份字典数据,如果没有提供初始数据,就保存为空的方式。

UserDict类实例提供下面的属性:

data

用来保存字典的成员变量。

例子:

#python 3.4

import collections

d = {'a': 2, 'b': 3}

ud = collections.UserDict(d)

print(d, ud)

del d['a']

print(d, ud)

结果输出如下:

{'a': 2, 'b': 3} {'a': 2, 'b': 3}

{'b': 3} {'a': 2, 'b': 3}

5.3.8 UserList对象

用户自定义列表类,主要用来给想继承列表的用户,用户又需要自定义一些列表的行为。

class collections.UserList([list])

构造一个用户自定义的列表。在这个类里,主要管理成员变量data,在初始化时会把列表数据拷贝到data成员上,如果没有初始化数据,那么成员变量data初始化为空的列表。

例子:

#python 3.4

import collections

l = [1, 5, 6, 8]

ul = collections.UserList(l)

newl = l

print(l, newl, ul)

del l[2]

print(l, newl, ul)

结果输出如下:

[1, 5, 6, 8] [1, 5, 6, 8] [1, 5, 6, 8]

[1, 5, 8] [1, 5, 8] [1, 5, 6, 8]

5.3.9 UserString对象

用户自定义字符串类,可以通过继承这个类来实现字符串的管理功能。

class collections.UserString([sequence])

构造一个字符串或者一个UNICODE字符串对象。构造时可以从初始化参数里拷贝到成员变量data,sequence支持bytes,str,UserString等类型。

例子:

#python 3.4

import collections

s = 'this for test'

us = collections.UserString(s)

print(us)

print(us.data)

结果输出如下:

this for test

this for test

评论关闭