拷贝

深浅拷贝及四大高阶函数应用

我们两清 提交于 2020-02-08 22:27:27
一.浅拷贝和深拷贝 浅拷贝: 不管多么复杂的数据结构,浅拷贝都只会copy一层 深拷贝 : 深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,我们对这两个变量中任意一个修改都不会影响其他变量 import copy sourceList = [ 1 , 2 , 3 , [ 4 , 5 , 6 ] ] copyList = copy . copy ( sourceList ) deepcopyList = copy . deepcopy ( sourceList ) sourceList [ 3 ] [ 0 ] = 100 print ( sourceList ) # [1, 2, 3, [100, 5, 6]] print ( copyList ) # [1, 2, 3, [100, 5, 6]] print ( deepcopyList ) # [1, 2, 3, [4, 5, 6]] 二. python垃圾回收机制 1. 引用计数 1)当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1. 2)当对象的引用计数减少为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。 2. 标记-清除 1)它分为两个阶段:第一阶段是标记阶段,GC会把所有的活动对象打上标记,第二阶段是把那些没有标记的对象非活动对象进行回收。

常用的DOS命令

梦想与她 提交于 2020-02-08 18:19:25
常用DOS命令 DOS和Windows最大的不同在于DOS命令方式操作,DOS命令分为内部命令和外部命令, 内部命令是随每次启动的COMMAND.COM装入并常驻内存,而外部命令是一条单独的可执行文件。在操作时要记住的是,内部命令在任何时候都可以使用,而外部命令需要保证命令文件在当前的目录中,或在Autoexec.bat文件已经被加载了路径。 常用的内部命令 DOS的内部命令是DOS操作的基础。 0、切换盘符 D:回车、e:回车 1、DIR   含义:显示指定路径上所有文件或目录的信息   格式:DIR [盘符:][路径][文件名] [参数]   参数:   /W:宽屏显示,一排显示5个文件名,而不会显示修改时间,文件大小等信息;   /P:分页显示,当屏幕无法将信息完全显示时,可使用其进行分页显示;   /A:显示具有特殊属性的文件;   /S:显示当前目录及其子目录下所有的文件。   举例:DIR /P 将分屏显示当前目录下文件。在当前屏最后有一个“Press any key to continue . . .”提示,表示按任意键继续。 2、CD   含义:进入指定目录   格式:CD [路径]   举例:CD DOS CD命令只能进入当前盘符中的目录,其中“CD”为返回到根目录,“CD..”为返回到上一层目录。 这里的*是表示省略了文件夹全名。 3、MD   含义:建立目录

硬盘安装server2008之64位系统

徘徊边缘 提交于 2020-02-08 08:01:40
硬盘安装server2008之64位系统 上篇CC介绍到制作USB启动盘来为没有光驱的主机来启动系统并安装系统,老方要求描述下2008之64位安装,我想可能也有部分博友不知道怎么整,毕竟U盘Pe是32位的,那么这篇我就为大家介绍下如何在U盘pe启动后从硬盘安装server2008 X64.有光驱的和已经知道了这个方法的可以略过本文不看. 1. 进入PE,正常对新硬盘分区 2. 挂载存放2008X64的移动硬盘,当然你的U盘够大,可以放在U盘里面,另外需要2008X32位光盘中的boot文件夹中的bootsect.exe文件,请提前准备. 3. 将iso文件解压到硬盘的非系统盘的根目录,命名win2k8 4. 拷贝启动文件到c盘 5. 创建启动菜单 6. 启动安装 下面进入正题,我们使用U盘PE,启动系统 1. 分区硬盘 第一个分区,建议30G左右,因为2008安装后基本是10多G,如果分区20G,在未来安装SP2的时候,系统会强行要求系统盘有7G的空间,这点比较汗,先分大点吧 然后格式化成NTFS 确认执行,单击是 然后将剩下的空间也分一个主分区,然装载硬盘,分别分配盘符 第二个盘,因为U盘PE占用了D盘,先分个E吧 然后将系统C盘设置为活动,这步等于是我们fdisk原始分区中的激活分区步骤,不然系统部能启动 这里开始执行我们上面设置的步骤 Ok,执行完成,关闭对话框

前端-对象-合集

寵の児 提交于 2020-02-08 06:20:30
1.对象是什么 对象是由多个键值对组成的无序的集合。对象中每个属性对应任意类型的值 2.面向对象是什么 使用对象中的属性和方法就是面向对象 3.JavaScript的本地对象有哪些 分别有什么特点 本地对象为array obj regexp等 特点是本地对象可以new实例化 4.JavaScript的内置对象有哪些 有什么特点 JavaScript常见的内置对象有 Object,Math,String,Array,Number,Function,Boolean,JSON 等 其中Object是所有对象的基类,采用了原型继承方式. 特点:内置对象不可以实例化 JavaScript的宿主对象有哪些 宿主为浏览器自带的document,window 等 5.对象-js中深拷贝和浅拷贝的区别 浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。 深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存, 修改新对象不会改到原对象。 6. js深拷贝的方法有哪些: 递归拷贝 使用Object.create ( ) 方法 jquery 有提供一个$.extend也可以实现 函数库lodash,也有提供cloneDeep用来实现 7,介绍js有哪些内置对象? Object 是 JavaScript 中所有对象的父对象 数据封装类对象:Object、Array

Linux文件拷贝命令选项及参数

馋奶兔 提交于 2020-02-08 00:21:22
cp [-adfilprsu] 来源文件(source) 目标文件(destination) 选项与参数: -a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明;(常用) -d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身; -f :为强制(force)的意思,若目标文件已经存在且无法打开,则移除后再尝试一次; -i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l :进行硬式链接(hard link)的链接文件创建,而非复制文件本身; -p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用); -r :递回持续复制,用于目录的复制行为;(常用) -s :复制成为符号链接文件 (symbolic link),亦即“捷径”文件; -u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。 --preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了。 最后需要注意的,如果来源文件有两个以上,则最后一个目的文件一定要是“目录”才行! 来源: https://www.cnblogs.com

C++拷贝构造函数和拷贝赋值运算符问题

こ雲淡風輕ζ 提交于 2020-02-07 16:05:27
为什么需要析构函数就几乎需要拷贝构造函数和拷贝赋值运算符?或者说拷贝构造函数和拷贝赋值运算符什么时候需要自己构造? 答: 当类内出现指针时,为了防止浅拷贝,即只对指针变量进行拷贝,而不对指针指向的对象也进行复制。自定义拷贝构造函数是为了防止析构函数多次delete同一个指针对象,而自定义拷贝赋值运算符是为了防止在赋值后一个指针所指向对象改变值后不改变另一个指针对象的值。 需要自定义拷贝构造函数示例(可注释掉拷贝构造函数,看注释前后输出发生了什么变化) // // Created by raysuner on 20-2-2. // #include <iostream> using namespace std; class A{ private: string *str; public: explicit A(const string &s){ cout << "构造函数" << endl; str = new string(s); } A(const A &a){ cout << "拷贝构造函数" << endl; this->str = new string(*a.str); } ~A() {delete str; cout << "析构函数" << endl;} void print(){ cout << *(this->str) << endl; } }; A f(A a){

Docker的镜像导出与导入与拷贝

柔情痞子 提交于 2020-02-07 14:15:43
第一种解决方案是,将镜像推送到公有的镜像仓库,然后pull下来 第二种,将镜像打包,然后拷贝到第二台服务器中 #将镜像存储 docker save gateway:latest > /home/gateway.tar 将gateway.tar复制到需要的服务器上,然后在服务器上导入该镜像文件 #导入镜像文件 docker load --input /root/docker-images/nginx.tar 或者通过符号的方式来导入 docker load < /root/docker-images/nginx.tar 来源: https://www.cnblogs.com/xiaoyou2018/p/12272881.html

面向对象——传址与传值

雨燕双飞 提交于 2020-02-05 19:04:19
传址 复杂的数据类型–传址: 传递了数值和地址,共享了一块内存空间 传址的两种方式: 浅拷贝 深拷贝 浅拷贝: 只拷贝数值,没有拷贝地址。 节省内存,但是因为共享内存,所以相互影响数据 let DadPro = { name : "张三" , age : "20" , sex : "男" } let SonPro = DadPro ; SonPro . name = "李四" ; console . log ( SonPro ) ; console . log ( DadPro ) ; 深拷贝: 数值和内存都拷贝,相互独立,不彼此影响 let DadPro = { name : "张三" , age : "20" , sex : "男" , obj2 : { score : "99" , hobby : "跳舞" } , arr : [ ] , fn : function ( ) { console . log ( "dada" ) ; } , txt : undefined } //JSON.parse(): 这个方法会返回一个新的对象, 以此来达成创建一个 //新地址的目的 //但是通过这个方法完成的深拷贝, 会丢失function(){} 和 undefined let SonPro = JSON . parse ( JSON . stringify ( DadPro ) )

[C#] CSharp 基本语法

与世无争的帅哥 提交于 2020-02-05 17:41:36
一、基础 1.规范: 除常量外,所有变量用驼峰命名方式,其它用帕斯卡命名方式. 2.编译: 首先由csc.exe将cs文件编译成MSIL.当双击exe的时候,会由clr的jit(just in time)编译器再次编译成cpu指令. csc位置(如):C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe csc命令(如): csc /t:library acme.cs(编译成类库) csc /r:acme.dll test.cs(引用acme.dll后编译) ngen位置(如):C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe(可实现jit效果) ngen命令(如):ngen install D:\SystemTool\HelloWorld.exe (备注:exe方式) 3.面向对象(Object-Oriented 面向对象编程:Object-Oriented-Programming): 类是抽象的,对象是具体的. 析构函数:~ClassName(){}.实际是重写基类的Finalize()方法 4.变量: 成员变量:默认有一个初始值.string->null,int->0,bool->false 局部变量:使用前必须赋值. 5.封装: a.字段封装成属性 b

js深浅拷贝

依然范特西╮ 提交于 2020-02-05 11:04:50
首先要清楚js的数据类型,和存储方式(栈,堆)。 对象的赋值其实是将对象名存储在栈中,对应存储的值为堆中数据的引用指针。 基本数据类型的存储则是直接存储在栈中。 浅拷贝:如果对象的属性的值为对象,则保存的为对象的指针,修改指针指向对象的值,则两个对象均会发生变化 Object.assign({},obj1,obj2) obj = {...obj1} 深拷贝:两个对象互相不干扰,修改值不会有影响 1、obj1 = JSON.parse(JSON.stringify(obj2)) 这种方法只能深拷贝对象和数组,不能拷贝函数,循环引用(就是在对象的属性对应的值为对象本身),还不能拷贝(Date,RegExp,Error) 2、for in 循环递归 function deepClone(obj){ if(typeof obj ==='object'){ //判断obj类型,这里只考虑对象和数组 //typeof 返回的值有7种,均为字符串类型 number,string,boolean,undefined symbol,function,object const objClone = Array.isArray(obj)?[]:{}; for(let key in obj){ if(obj.hasOwnProperty(key)){ objClone[key] = deepClone