嵌套

Python中拷贝是有深度的!

六眼飞鱼酱① 提交于 2020-03-04 06:07:02
文章目录 列表的拷贝 实现深度拷贝 列表的拷贝 开始学习Python的时候我们应该在很多地方听到或学到这样一个问题,就是s = l[:],s(列表)可以实现l(列表)的拷贝: l = [ 1 , 3 , 6 ] s = l [ : ] print ( s , l is s ) 结果为: [1, 3, 6] False 显而易见,我们得到了l的一个副本,就是l与s只是值相同。我们可以测试下: s [ 0 ] = 99 print ( l , s ) 结果为: [1, 3, 6] [99, 3, 6] 就这个例子来说我们实现了拷贝。但是!并不是l[:]就能实现拷贝,这是由Python拷贝的深度决定的,举个例子: l = [ [ 1 , 3 , 8 ] , 6 , 7 ] s = l [ : ] print ( l is s , l [ 0 ] is s [ 0 ] ) 结果: False True 显然我们实现了l的拷贝,但是却不能将嵌套在l内部的列表一起复制了。个人认为这就是拷贝深度的问题!我们看下带来的问题: s [ 0 ] [ 0 ] = - 99 print ( l , s ) 嵌套的列表是没有能够被拷贝的,s对嵌套的列表修改其元素都会影响l中的嵌套列表 [[-99, 3, 8], 6, 7] [[-99, 3, 8], 6, 7] 我们拷贝的是嵌套列表的索引

静态嵌套类

前提是你 提交于 2020-03-04 00:11:40
静态嵌套类 什么是静态嵌套类 就是成员内部类加上static修饰符。 静态嵌套类中的元素 1.实例变量 2.类变量 3.构造方法 4.实例方法 5.类方法 静态嵌套类中的方法访问其他的变量和方法 1.在静态嵌套类中构造方法和实例方法中访问静态嵌套类中的实例变量/实例方法,默认this.,可以省略this. 2.在静态嵌套类中构造方法和实例方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名.,也可以省略this.,可以省略静态嵌套类类名./this. 3.在静态嵌套类中类方法中不能访问静态嵌套类中的实例变量/实例方法。 4.在静态嵌套类中的类方法中访问静态嵌套类中的类变量/类方法,默认静态嵌套类类名.,可以省略静态嵌套类类名. 5.在静态嵌套类中的类方法中不能出现this. 6.在静态嵌套类中构造方法和实例方法/类方法可以访问构造方法,通过new访问。 静态嵌套类中访问外部类的变量和方法 1.静态嵌套类中的构造方法/实例方法/类方法可以访问外部类的实例变量/实例方法,只能通过外部类的对象访问 2.静态嵌套类中的构造方法/实例方法/类方法可以访问外部类的类变量/类方法,默认外部类的类名.,可以省略外部类的类名. 3.静态嵌套类中的构造方法/实例方法/类方法可以访问外部类的构造方法,通过new访问 外部类中访问静态嵌套类中的变量和方法 1.外部类中的构造方法/实例方法

C++类——高级(四)《一谈作用域与类》

北战南征 提交于 2020-03-03 01:21:15
1. 作用域与隐藏名字 作用域需用::来访问,或用using指示以省略::来访问。 类也有一个作用域,所以,尽管两个类的成员完全相同,其成员认识有差别的。如: class same { public : default_random_engine same ; void get_number ( ) ; } ; class same_too { public : default_random_engine same ; void get_number ( ) ; } ; 我们看到,两边的成员是完全一样的,但是,他们处在两个不同的作用域中,所以是有差别的。 隐藏 由于是两个作用域,所以互相之间隐藏了其它作用域的名字。 2.局部作用域与静态成员 一般来说,局部作用域一般指函数的作用域,离开作用域之后所有非静态成员都将会执行析构函数。但是,静态成员除外。 当我们需要保存上一次函数的运行数据是,局部静态成员就非常有用了。 如以下代码: class example { public : int count_calls_times ( ) { static int times ; return timrs ++ ; //因为是局部静态成员,所以times并不会被析构 } } ; 局部作用域不可用“::”访问 由于局部作用域的成员会被销毁(静态成员除外),所以我们不能用::来访问。 3

弹性盒子嵌套

帅比萌擦擦* 提交于 2020-03-01 13:41:54
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> 弹性布局嵌套: 1,谨记:由外向内进行设置弹性盒子。先设置外部弹性布局,然后在设定里面的布局即可。 </title> </head> <style> /* 1,以下是给弹性盒子设置主轴及其方向设置flex-direction: row; 2,通过.column不设置宽度(由内容撑开),来设置排列方式。 */ .flex-container-one{ width: 500px; height: 500px; background: #B6B67B; margin: auto; margin-top: 50px; display: flex; flex-direction: row; justify-content: space-evenly; } .column{ display: flex; background: #439290; flex-grow: 0; flex-shrink: 0; flex-basis: 0; flex-wrap: nowrap; flex-direction: column; justify-content: space-evenly; /*align-content: space-evenly;*/ }

Visual Paradigm 教程[UML]:如何在序列图中应用消息编号?

二次信任 提交于 2020-03-01 06:39:51
下载Visual Paradigm最新试用版 在本教程中,我们将介绍两种主要方式:基于图表和基于框架。当我们将“scope”指定为图表或框架时,基本上我们告诉Visual Paradigm它应该重新启动消息的数字序列。 1.基于图表的编号 基于图表的编号(单级) 在UML序列图中,右键单击背景并选择序列号>单级。 作为一个例子,我们可以看到,尽管使用了一个框架元素,但只要它们在同一个图表中,数字序列就会继续。 基于图表的编号(嵌套级别) 在UML序列图中,右键单击背景并选择序列号>嵌套级别。 类似地,我们可以看到,尽管使用了帧元素,但只要它们在同一个图中,数字序列就会继续。 2.基于帧的编号 基于帧的编号(单级) 在您的UML序列图中,右键单击背景并选择序列号>基于帧的单级。 作为一个例子,我们可以看到消息编号在帧中重新开始,尽管它在同一个图中。 基于帧的编号(嵌套级别) 在您的UML序列图中,右键单击背景并选择序列号>基于帧的嵌套级别。 例如,在这里我们可以看到消息编号在帧中重新开始。此外,“小数”用于反映程序调用的嵌套级别。 下载Visual Paradigm最新试用版 来源: oschina 链接: https://my.oschina.net/u/3905944/blog/3056427

详解css的预编译语言sass

寵の児 提交于 2020-02-28 13:35:04
#千锋逆战班,打卡第二天# sass是css的预编译语言,比css更高更快更强 将sass语言写在后缀为 .sass 或者 .scss 的文件里面。 .sass文件 和 .scss 文件的区别 在 . scss文件里面和写css语法基本一致 在 . sass文件里面就没有大括号和分号,全部依靠缩进来维持关系 这两个文件被编译成css文件以后是一样的 sass工具编译 .sass 和 .scss文件 1. sass单文件编译 + 先写好一个 . scss 或者 . sass后缀的文件 + 打开命令行,切换到文件的目录 + 输入指令 - > sass 要编译的文件 编译后的文件名 + 每次修改scss文件都需要从新编译一下 2. sass 单文件实时编译 => 你先写好一个 . sass 或者 . scss 后缀的文件 => 打开命令行 , 切换到文件的目录 => 输入指令 - > sass -- watch 要编译的文件 : 编译后的文件名 => 一个终端只能监控一个文件 , 你要是想监控多个文件 , 需要开启很多终端 3. sass 文件夹实时编译 => 把一个文件夹里面的 sass 文件全部编译到另一个文件夹里面 => 先准备好一个文件夹 , 这个文件夹是专门来写 sass 文件的 => 代开命令行 , 切换到这个文件夹的目录 => 输入指令 - > sass -- watch

你真的了解interface和内部类么

隐身守侯 提交于 2020-02-28 05:37:30
java 访问控制符 private : 只能被当前类访问 protected : 可以被同包的类和任何子类访问(包内,包外) default : 可以被包内的任何内访问 public : 任何类都可以访问 Java重载可以改变类的访问控制符么? 可以! 但只能将访问权限变大,不能缩小。比如 A extends B ,B中有一个M方法是 则M支持如下扩充:(private不支持重载) default —— protected default —— public protected —— public 接口 接口是类么? 由下图可以看出,接口和类同属于java数据类型的引用数据类型,他们是同等级的,接口并不是类。类是用class定义,而接口是inteface定义。 接口中可以定义成员变量么? 接口的含义理解 :接口可以理解成统一的"协议",而接口中的属性也属于协议中的内容;但是接口的属性都是公共的,静态的,最终的 接口的成员特点 : A:成员变量 只能是常量。默认修饰符 public static final B:成员方法 只能是抽象方法。默认修饰符 public abstract 接口内的函数 需要 public,private,protected, abstract 修饰么? 如果我们在定义一个接口时,给内部的某个接口加上“public” 修饰符,不会报错,但是编译器会提示如下:

读《java编程思想》10-内部类

爱⌒轻易说出口 提交于 2020-02-28 05:35:52
将一个类定义放在另一个类的定义内部,这就是内部类。 1、创建内部类对象方法,假设有一个外部类Outer,其中有一个内部类Inner。 (1)在外部类中,提供创建并返回内部类对象的方法,方法名可以和内部类名字相同(首字母小写), 如: public void inner() { return new Inner(); } (2)先创建外部类对象,然后使用外部对象.new的方式创建内部类。 如: Outer outer = new Outer(); Outer.Inner inner = outer.new Inner() 2、内部类 和 其构造方法都支持所有的访问修饰符,并受到访问控制。(和普通的成员变量 和 普通方法一样) (1)内部类默认的是包访问。如果在和定义不同的包中使用Outer.Inner声明变量,就会提示无法访问Inner。 (2)内部类的缺省构造方法默认的是包访问。如果在和定义不同的包中使用outer.new Inner(),则会提示构造函数无法访问。 (第一种创建方式是不是更简单呢) 3、链接到外部类 (1)内部类可以访问外部类所有成员,因为内部类默认存在一个指向外部类的引用。 (2)如果需要在内部类内部返回此引用,可以使用外部类.this 返回。 (3)外部类可以创建内部类对象,通过此对象直接访问内部类所有成员(包括private)。 4、私有内部类 + 向上转型

@Validated和@Valid的使用

别来无恙 提交于 2020-02-27 20:20:37
@Validated和@Valid在嵌套验证功能上的区别: @Validated:用在方法入参上无法单独提供嵌套验证功能。不能用在成员属性(字段)上,也无法提示框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。 @Valid:用在方法入参上无法单独提供嵌套验证功能。能够用在成员属性(字段)上,提示验证框架进行嵌套验证。能配合嵌套验证注解@Valid进行嵌套验证。 Spring validation验证框架对入参实体进行嵌套验证必须在相应属性(字段)加上@Valid而不是@Validated Spring Validation验证框架对参数的验证机制提供了@Validated(Spring’s JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数验证结果。其中对于字段的特定验证注解比如@NotNull等网上到处都有,这里不详述 在检验Controller的入参是否符合规范时,使用@Validated或者@Valid在基本验证功能上没有太多区别。但是在分组、注解地方、嵌套验证等功能上两个有所不同: 1. 分组 @Validated:提供了一个分组功能,可以在入参验证时,根据不同的分组采用不同的验证机制,这个网上也有资料,不详述。@Valid:作为标准JSR-303规范

HTML学习-基础篇

对着背影说爱祢 提交于 2020-02-27 20:13:32
入门:网页源码查看 1. html 基本结构 < ! DOCTYPE html > ----------------声明文档的解析类型,避免浏览器的怪异模式 < html > ----------------根标签(开始) < head > ----------------头标签(开始) < title > html 基本结构 < /title > -------------标题标签 < /head > ----------------头标签(结束) < body > ----------------主体标签(开始) 主体内容! ----------------浏览器显示的主体内容区域 < /body > ----------------主体标签(结束) < /html > ----------------根标签(结束) 2、html常用标签 水平线: < hr / > 主体内容标题: < hn > < /hn > ( n = 1,2,3,4,5,6 ) 段落: < p > < /p > 换行: < br / > 空格: & nbsp ; 无序列表: < ul > < li > < /li > < /ul > 有序列表: < ol > < li > < /li > < /ol > 定义列表: < dl > < dt > 名词 < /dt > < dd > 名词定义 < /dd >