拷贝

浅拷贝(Shallow) VS 深拷贝(Deep)

心已入冬 提交于 2020-02-05 05:29:07
首先,深拷贝和浅拷贝针对的是对象类型(对象,数组,函数)。 浅拷贝指的是只是拷贝了对象的引用地址,彼此之间高耦合,一个改变,另一个可能也随之改变; 深拷贝是指只是完整的将变量的值拷贝过来,是一个新的对象,和被拷贝对象解耦合,一个改变,不会影响其它的内容。 浅拷贝 当对象有多层属性值时,只拷贝第一层, 是浅拷贝。如果被拷贝对象只有一层,下面的方法就是深拷贝。 1)对象遍历赋值 let copy = function(target,source){ for(let property in source){ target[property] = source[property] } return target; } 2) 对象合并函数Object.assign({})--复制可遍历属性(元属性enumerable为true) 当Object.assign(obj)只有一个参数时,相当于返回自身。 let copy = Object.assign(obj); // copy === obj// 注意:当obj的值为原始类型的值(boolean,string,number)时,会将原始值转为包装对象。当obj为undefined或者null时,无法转为对象会报错。 当Object.assign(target, source1, source2,...)有多个参数时,将第一个设为空对象{}//

RIS远程安装服务随笔

心不动则不痛 提交于 2020-02-04 04:52:54
1、采用远程安装服务RIS时,加载TEXTMODE磁盘驱动的方法: 修改应答文件 类似如下: [Unattended] OemPreinstall = Yes # OEM RAID Drives OemPnPDriversPath = " \\%SERVERNAME%\RemInst\%INSTALLPATH%\$OEM$\textmode " #驱动程序文件拷贝到与“i386”同级的“$OEM$”下 DUDisable = no DriverSigningPolicy = Ignore [MassStorageDrivers] "Intel(R) ICH10R SATA AHCI Controller" = "OEM" "Intel(R) ICH8R/ICH9R/ICH10R/DO SATA RAID Controller" = "OEM" #设备名称,需要与TXTSETUP.OEM中的内容一致 [OEMBootFiles] #需要复制的文件列表 TXTSETUP.OEM iaAHCI.cat iaAHCI.inf iaStor.cat iaStor.inf IaStor.sys 2、开启磁盘分区设置 [RemoteInstall] Repartition = No #UseWholeDisk不能加,无论后面写 = Yes还是No [Unattended] FileSystem

深浅拷贝,小数据池,代码块

情到浓时终转凉″ 提交于 2020-02-04 02:57:14
一 深浅拷贝 1. 浅拷贝 lst = [1,2,3,[4,5,6]] lst1 = lst.copy() # lst1 = lst[:] 新开辟一块空间 lst[-1].append(8) print(lst) print(lst1) 输出结果: [1, 2, 3, [4, 5, 6, 8]] [1, 2, 3, [4, 5, 6, 8]] 字典的值是列表,列表里的元素是第二层元素 dic = {'123':[1,2,3,[4,5,6]]} dic1 = dic.copy() dic['123'].append(8) print(dic) print(dic1) 输出结果: {'123': [1, 2, 3, [4, 5, 6], 8]} {'123': [1, 2, 3, [4, 5, 6], 8]} lst = [1,2,3,[4,5,6]] lst1 = lst.copy() #新开辟一块空间 lst[-1] = 8 # lst.append(8) print(lst) print(lst1) 输出结果: [1, 2, 3, 8] # [1, 2, 3, [4, 5, 6], 8] [1, 2, 3, [4, 5, 6]] # [1, 2, 3, [4, 5, 6]] 浅拷贝的时候,只会开辟一个新的列表空间,其他元素使用都是原列表的中的元素 浅拷贝在修改新拷贝的列表中可变

数据池,集合及深浅拷贝

你离开我真会死。 提交于 2020-02-04 00:35:41
小数据池(python中一种提高效率的方式,固定数据类型使用同一个内存地址) 支持str,int,bool id 查看空间的内存地址 获取开辟空间的一种地址 print(id(a)) 代码块: 一个文件,一个模块,一个函数,一个类,终端中每一行都是一个代码块 在python中是用字典的方式存储 is # 判断两个内存地址是否相同 # 必须记住 == # 判断等号两边的值是否相同 # 必须记住 字符串:1.字符串在做乘法的时候总长度不能超过20,进行驻留 # 记住 2.自己定义的字符串 长度不限制 字符串必须(字母,数字.下划线)组成,进行驻留 3.特殊字符(中文除外)定义1个时候,进行驻留 4.字符串*1 其实就是赋值 如果is判断相同 == 一定相同 如果==判断相同 is 不一定相同 a = 1000 b = 1000 print(a == b) a = "alexdsb" * 2 b = "alexdsb" * 2 print(a is b) a ="12345678912345678qwertyuioqwertUIOWERTYUIOQghjksdfghjk____asdgadsfasdfgasdgasdgfsdaf" b ="12345678912345678qwertyuioqwertUIOWERTYUIOQghjksdfghjk___

Linux下的scp拷贝命令详解

三世轮回 提交于 2020-02-04 00:27:55
转自: https://www.cnblogs.com/longjshz/p/5773679.html 相同Linux系统中对文件复制拷贝可以用CP命令: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 -a 尽可能将档案状态、权限等资料都照原状予以复制。 -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。 -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。 不同的Linux之间copy文件常用有3种方法: 第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。 第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。 第三种就是利用 scp 命令来进行文件复制。 scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上 从 本地 复制到 远程 命令格式: scp -r local_file remote_username@remote_ip:remote_folder 或者 scp -r local_file remote

Linux下的scp拷贝命令详解

我是研究僧i 提交于 2020-02-03 22:59:23
相同Linux系统中对文件复制拷贝可以用CP命令: cp [options] source dest cp [options] source... directory 说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。 -a 尽可能将档案状态、权限等资料都照原状予以复制。 -r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。 -f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。 不同的Linux之间copy文件常用有3种方法: 第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。 第二种方法就是采用samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。 第三种就是利用 scp 命令来进行文件复制。 scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上 从 本地 复制到 远程 命令格式: scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local_file remote_ip

python笔记07

时光怂恿深爱的人放手 提交于 2020-02-03 17:17:44
今日内容 深浅拷贝(面试) 文件操作 今日内容 深浅拷贝 v1=[1,2,[34,67,9]] import copy 浅拷贝: 拷贝第一层 v2=copy(v1)---将v1的地址copy,最外层壳拷贝一份,内层变量指向地址不变。 id(v1[2]),id(v2[2])--相同 id(v1),id(v2)---不相同,不拷贝内部变量地址 深拷贝: v1=[1,2,[34,67,9]] import copy 深拷贝: 拷贝所有数据(可变) V3=deepcoyy(v1)---将v1中可变类型地址进行拷贝。适合嵌套的类型 id(v1),id(v2)--不同 id(v1[2],id(v2[2))--不同,内部变量地址也拷贝 实例验证: import copy v1=[1,2,[34,67,9]] v2=copy.copy(v1) print(id(v1),id(v2)) print(id(v1[2]),id(v2[2])) v3=copy.deepcopy(v1) print(id(v1),id(v3)) print(id(v1[2]),id(v3[2])) 输出: 39290696 39291976 39290504 39290504 39290696 39291912 39290504 39291848 总结: 深浅拷贝只针对可变类型。如果只有一层,深、浅拷贝拷贝相同。 浅拷贝

shutil模块(了解)

怎甘沉沦 提交于 2020-02-02 21:05:05
目录 一、shutil模块 1.1 zipfile压缩解压缩 1.2 tarfile压缩解压缩 一、shutil模块 高级的文件、文件夹、压缩包处理模块。 import shutil # shutil.copyfileobj(fsrc, fdst[, length]),将文件内容拷贝到另一个文件中 shutil.copyfileobj(open('old.xml', 'r'), open('new.xml', 'w')) # shutil.copyfile(src, dst),拷贝文件 shutil.copyfile('f1.log', 'f2.log') # 目标文件无需存在 # shutil.copymode(src, dst),仅拷贝权限。内容、组、用户均不变 shutil.copymode('f1.log', 'f2.log') # 目标文件必须存在 # shutil.copystat(src, dst),仅拷贝状态的信息,包括:mode bits, atime, mtime, flags shutil.copystat('f1.log', 'f2.log') # 目标文件必须存在 # shutil.copy(src, dst),拷贝文件和权限 shutil.copy('f1.log', 'f2.log') # shutil.copy2(src, dst)

Python深浅拷贝

谁说胖子不能爱 提交于 2020-02-02 07:55:26
一、深浅拷贝 1、拷贝(赋值) list_1 = [1, 2, 3] list_2 = list_1 list_1.append(4) print(list_1, list_2) # 打印结果,列表是可变类型,所有list_1的值变化,list_2的值也会跟着改变 # [1, 2, 3, 4] # [1, 2, 3, 4] 2、浅拷贝 import copy list_1 = [1, 2, 3, [4, 5, 6]] list_2 = copy.copy(list_1) list_1.append(4) print(f'list_1:{list_1},list_2:{list_2}') list_1[-1].append(7) print(f'list_1:{list_1},list_2:{list_2}') # 打印结果,列表内可变对象发生改变,浅拷贝对象跟着改变。 # list_1:[1, 2, 3, [4, 5, 6], 4] list_2:[1, 2, 3, [4, 5, 6]] # list_1:[1, 2, 3, [4, 5, 6, 7]] list_2:[1, 2, 3, [4, 5, 6, 7]] 3、深拷贝 improt copy list_1 = [1, 2, 3, [4, 5, 6]] list_2 = copy.copy(list_1) list_1

笔记:编写字符串拷贝函数

浪尽此生 提交于 2020-02-02 05:55:17
参考书目:C/C++规范设计简明教程(第2版)P203 //例8.1 字符串拷贝 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <stdio.h> #include <math.h> using namespace std; /* 文件名:void myStrCpy(char pDes, char pSrc) 作用:将pSrc字符串拷贝为pDes 输入参数:参数1,源字符串;参数2 目标字符串 输出参数:无 使用方法: myStrCpy(pDes, pSrc); */ void myStrCpy(char pDes[], char pSrc[]); //输入参数为数组 /* 文件名:void myStrCpy1(char pDes, char pSrc) 作用:将pSrc字符串拷贝为pDes 输入参数:参数1,源字符串;参数2 目标字符串 输出参数:无 使用方法: myStrCpy(pDes, pSrc); */ void myStrCpy1(char *pDes, char *pSrc); //输入参数为指针 int main() { cout << "Hello World!\n"; char des[20], src[20], des1[20]; cin >> src; myStrCpy(des,