非常教程

Python参考手册

数据类型 | Data Types

copy

Python中的赋值语句不会复制对象,它们会在目标和对象之间创建绑定。对于可变项目或包含可变项目的集合,有时需要副本,以便可以更改一个副本而不更改其他副本。该模块提供通用的浅层和深层复制操作(如下所述)。

接口总结:

copy.copy(x)

返回x的浅表副本。

copy.deepcopy(x)

返回x的深层副本。

exception copy.error

引发模块特定的错误。

浅层和深层复制之间的区别仅与复合对象(包含其他对象的对象,如列表或类实例)相关:

  • 浅拷贝构造新化合物对象,然后(在可能的范围)插入引用到它在原始找到的对象。
  • 深层副本构造新化合物的对象,然后,递归地,插入拷贝到它在原始找到的对象的。

对于浅拷贝操作不存在的深拷贝操作常常存在两个问题:

  • 递归对象(直接或间接包含对自身的引用的复合对象)可能会导致递归循环。
  • 由于深拷贝复制了可能拷贝太多的所有内容,例如甚至应该在拷贝之间共享的管理数据结构。

The deepcopy() function avoids these problems by:

  • 保留在当前复制过程中已经复制的对象的“备忘录”字典; 和
  • 让用户定义的类覆盖复制操作或复制的组件集合。

这个模块不会复制像模块,方法,堆栈跟踪,堆栈框架,文件,套接字,窗口,数组或类似类型的类型。它通过不变地返回原始对象来“复制”函数和类(浅而深)这与这些pickle模块处理的方式是一致的。

例如,可以dict.copy()通过分配整个列表的一部分来制作浅表副本copied_list = original_list[:]

在版本2.5中更改:添加了复制功能。

类可以使用相同的接口来控制他们用来控制酸洗的复制。有关pickle这些方法的信息,请参阅模块的说明。该copy模块不使用copy_reg注册模块。

为了让类定义自己的拷贝实现,它可以定义特殊的方法__copy__()__deepcopy__()。前者被称为实施浅拷贝操作; 没有其他参数传递。后者被称为执行深层复制操作; 它传递了一个参数,备忘录字典。如果__deepcopy__()实现需要创建组件的深层副本,则应该deepcopy()使用组件作为第一个参数并将备注字典作为第二个参数来调用该函数。

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