python学习笔记七:浅拷贝深拷贝

原理

浅拷贝

import copy
b = copy.copy(a)

demo:

>>> a=[1,[‘a‘]]
>>> b=a
>>> c=copy.copy(a)
>>> a
[1, [‘a‘]]
>>> b
[1, [‘a‘]]
>>> c
[1, [‘a‘]]
>>> id(a)
140556196249680
>>> id(b)
140556196249680
>>> id(c)
140556298139120
>>> a[0]=2
>>> a
[2, [‘a‘]]
>>> c
[1, [‘a‘]]
>>>a[1].append(‘b‘)
>>>a
[2,[‘a‘,‘b‘]]
>>>c
[1,[‘a‘,‘b‘]]

深拷贝

import copy
b = copy.deepcopy(a)

demo:

>>> a=[1,2,[‘a‘,‘b‘]]
>>> b=copy.deepcopy(a)
>>> a
[1, 2, [‘a‘, ‘b‘]]
>>> b
[1, 2, [‘a‘, ‘b‘]]
>>> id(a)
140556196175952
>>> id(b)
140556196501336
>>> id(a[0])
11961144
>>> id(b[0])
11961144
>>> id(a[2])
140556196424448
>>> id(b[2])
140556196250472
>>> a[0]=3
>>> a[2].append(‘c‘)
>>> a
[3, 2, [‘a‘, ‘b‘, ‘c‘]]
>>> b
[1, 2, [‘a‘, ‘b‘]]
时间: 2024-07-29 20:22:40

python学习笔记七:浅拷贝深拷贝的相关文章

python学习笔记七:条件&循环语句

1.print/import更多信息 print打印多个表达式,使用逗号隔开 >>> print 'Age:',42 Age: 42   #注意个结果之间有一个空格符 import:从模块导入函数 import 模块 from 模块 import 函数 from 模块 import * 如果两个模块都有open函数的时候, 1)使用下面方法使用: module1.open()... module2.open()... 2)语句末尾增加as子句 >>> import ma

Python学习笔记七-错误和异常

程序员总是和各种错误打交道,学习如何识别并正确的处理程序错误是很有必要的. 7.1错误和异常 1.错误 从软件方面来看,错误分为语法错误和逻辑错误两种.这两种错误都将导致程序无法正常进行下去,当Python检测到一个错误时就出现了异常. 2.异常 当编译器检测到错误并且意识到错误条件.解释器会引发一个异常(程序员也可以自己引发一个异常,后面会说到). 以下是7种Python中常见的错误. 1.NameError,尝试访问一个未申明的例子. 2.ZeroDivisionError,零除错误. 3.

python学习笔记(七) - 面向对象高级编程

一. 为类动态添加属性和方法: 1. 动态给一个实例添加属性和方法: 给一个实例绑定的方法,对另一个实例是不起作用的. class Student(object): pass s = Student() s.name = 'Michael' # 动态给实例绑定一个属性 print s.name def set_age(self, age): # 定义一个函数作为实例方法 self.age = age from types import MethodType s.set_age = MethodT

Python学习笔记七:函数

1. 定义一个函数 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数.参数值和参数名称是按函数声明中定义的的顺序匹配起来的. 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明. 函数内容以冒号起始,并且缩进. Return[expression]结束函数,选择性地返回一个值给调用方.不带表达式的return相当于返回 None. 1 def functionname( parameters ): 2 "函数_文档字符串" 3 function_suite

python学习笔记七

模块 什么是模块:包括python代码的文件就叫模块 1.模块的作用:共享,方便使用 2.模块的创建.安装和发布 a.将模块文件放入某个目录 b.在这个目录中添加setup.py文件 c.编辑setup.py文件 像这样: from distutils.core import setup setup( name="lcmnester", version="1.0.0", py_modules=["lcmnester"], author="

python学习笔记(七) 类和pygame实现打飞机游戏

python中类声明如下: class Student(object): def __init__(self, name, score): self.name = name self.score = score def printinfo(self): print('name is %s, score is %d'%(self.name, self.score)) Student类有两个成员变量,name和score,类的成员函数第一个参数都为self,用来实现成员变量的赋值,__init__是

Python学习笔记七:web.py

安装pip: 到github上下载pip:https://github.com/pypa/pip 解压后,在解压出来的文件夹中打开命令行,输入 python setup.py install 安装完毕后,配置系统环境变量:在Path后,添加 python安装目录\Scripts 然后在命令行环境下,输入pip list测试是否安装成功. 最后使用pip安装模块,比如web.py: pip install web.py

python学习笔记(七):面向对象编程、类

一.面向对象编程 面向对象--Object Oriented Programming,简称oop,是一种程序设计思想.在说面向对象之前,先说一下什么是编程范式,编程范式你按照什么方式来去编程,去实现一个功能.举个例子,你要做饭,可以用电磁炉,也可以用煤气灶.不同的编程范式本质上代表对各种类型的任务采取的不同的解决问题的思路,两种最重要的编程范式分别是面向过程编程和面向对象编程. 提到面向对象,就不得不提到另一种编程思想,面向过程:什么是面向过程呢,面向过程的思想是把一个项目.一件事情按照一定的顺

Python学习笔记七:文件操作

文件操作 对照一个word文件的操作方式,来体会文件操作的内容 打开文件:f=open("file"),提示编码错误,windows默认是GBK f=open("file",encoding="utf-8) 输出全部内容:print(f.read()) 文件打开模式:默认为"r",只读:"w",写,创建新文件写,原文件内容被覆盖: "a",append,附加在文件最后 读.写只能有一种操作 关闭文