嵌套

22、Python之函数对象和闭包

拜拜、爱过 提交于 2020-03-21 07:53:04
目录 一、函数对象 1.1 可以被赋值 1.2 函数可以当作参数传给另一个函数 1.3 函数可以当作一个函数的返回值 1.4 函数可以当作容器类型的一个元素 二、函数嵌套 2.1 函数的嵌套调用:在调用一个函数的过程中又调用其他函数 2.2 函数的嵌套定义:在函数内定义其他函数 三、闭包函数 3.1 什么是闭包函数 3.2 闭包函数的应用 一、函数对象 可以把函数作为变量去使用,不加括号作为内存地址,加括号作为函数运行作为返回值 1.1 可以被赋值 # func=内存地址 def func(): print('from func') f=func print(f,func) # '<function func at 0x0000027B07F36280> <function func at 0x0000027B07F36280>' f() # from func 1.2 函数可以当作参数传给另一个函数 # func=内存地址 def func(): print('from func') def foo(x): # 若x = func的内存地址 print(x) # x() foo(func) # 则返回为foo(func的内存地址) <function func at 0x0000027B07F36280> def foo(x): # x = func的内存地址 # print(x

OO第一单元作业总结

喜你入骨 提交于 2020-03-19 13:24:41
第一单元小结 基于度量分析自己的程序结构(工具:DesigniteJava、MetricsReloader) 总的分析:unit1的作业的代码的质量不是很高,主要有以下几点原因: 类与类之间耦合程度过高,可扩展性差 部分类内部实现过于复杂,不利于调试和维护 没有使用对象构造中的工厂模式进行因子、项等的创建 部分类内部方法的实现不够聚合,会与其他类的一些方法有较大联系 圈复杂度:和类内部实现的复杂度相关,循环条件判断等复杂的逻辑组合相关 类之间的依赖关系 UML图如下: 分析:在这次的设计过程中,类的划分上是存在一定的问题的,例如对于不同因子的求导的过程,求导应该交给对应的类自己去完成,在内部实现求导功能,返回一个统一的类型,而不是交由外部进行判断然后求出求出对应的结果,因此应当在之后的设计中尽可能降低类与类之间的耦合程度,增加类内部的聚合度,从而实现功能的专一性(职责明确),DIT为1。 优点:使用到了类的继承的设计结构,抽象方法的复写 缺点:方法的功能上不是很专一,方法与方法之间的耦合度比较高,有些方法的实现过于复杂,不便于调试和维护 Metrics分析: 分析:在这一单元的构造中,部分的代码架构不是很好,不太容易维护,其中最主要的原因是大量的使用到了if-else的逻辑判断的语句,同时存在者多层的嵌套结构,导致代码的可维护性和可扩展性大大降低; 解决的办法

Delphi操作XML文件(1)

泄露秘密 提交于 2020-03-18 02:09:19
拜读了万一老师的博客之Delphi中的XMLDocument类详解,受益颇深,但可能有些初学者读后不易理解(例如本人),特记录如下。 XML基本语法 看一个简单的XML文档: <?xml version="1.0" encoding="ISO-8859-1"?> <people> <name>yufuzi</name> <sex>man</sex> <age>27</age> <description>I am a good man! </description> </people> XML 文档由一个 XML 声明和包含一些嵌套元素的一个根元素或标签构成。   1.声明语句<?xml ... ?>的作用是告诉浏览器或其它处理程序这个文档是XML文档。在每个 XML 文档的开始处必须包含声明.声明语句中的version表示文档遵守的XML规范的版本。encoding表示文档所用的语言编码,这个例子用的是"ISO-8859-1"西欧字符集。 2.XML元素指的是从该元素的开始标签到结束标签之间的这部分内容,如:<name>yufuzi</name>就称为一个元素,XML元素命名必须遵守下面的规则: 元素的名字可以包含子母,数字和其他字符。 元素的名字不能以数字或者标点符号开头。 元素的名字不能以XML(或者xml,Xml,xMl...)开头。 元素的名字不能包含空格。

birt 报表设计(6)— 嵌套表格

心已入冬 提交于 2020-03-17 22:29:51
某厂面试归来,发现自己落伍了!>>> 嵌套报表 嵌套报表其实是一种设计技巧的应用,类似编码过程中的模块化设计。当报表的复杂程度让设计者开始觉得逻辑混乱的时候,可以使用嵌套报表设计方法,将报表拆分为多个不同的设计页面,然后使用一个总的页面将这些设计页面整合起来展现。 此外,嵌套报表有时候也会用于主从结构的实现,通过逐层嵌套,可以实现无限层次的主从结构数据展现。 创建数据集 第一个数据集(承包商违章缴款记录): select FCompanyId, FTargetName,FMoney from D_Violation a 第二个数据集(承包商信息): select FName,FPrincipal,FPrincipalPhone,FContractProjec from D_Contractor where FNumber = ? 如上条件(承包商编号)就是一个暂位符,因为实际的参数要从第一个数据集中获取。当条件用"?"号指定后 编辑器就要你指定一个数据集参数了如: 我们为其指定一个默认的参数空字符串 准备完数据集后,就来绘制表格了: 1. 建立一个1列2行的网络。 2. 拖拽一个2行2列表格至第二行的网格中; 3. 选中表格的第一个“明细数据”行,右键点击后选择“合并单元格”将本行两列 合并为一列。 4. 拖拽一个网络4 列1行至表格的第一个“明细数据”行中(即刚合并的行) 5.

JS 使用window.parent、window.top、window.self 判断iframe 嵌套

馋奶兔 提交于 2020-03-12 06:51:18
首先介绍 window.self,window.top,window.parent,window.opener 四个的作用区别; window.self,window.top 是打开模式,而 windo.parent,window.opener 是父页面的打开模式。 如果页面中有iframe或者framese时,parent是父窗口,top是最顶级父窗口(如果窗口中存在多层嵌套),self是当前窗口,opener是用open方法打开当前的窗口。 window.self 功能:是对当前窗口自身的引用。它和window属性是等价的。 语法:window.self 注:window、self、window.self是等价的。 window.parent 功能:返回父窗口。 语法:window.parent 注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。 window.top 功能:返回顶层窗口,即浏览器窗口。 语法:window.top 注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用;如果窗口仅在一层iframe中,top属性与parent属性等价。 通过window.parent ,window.top,window.self可以分别获取当前窗口、父窗口、顶层窗口的对象引用

三层加密:if-else嵌套

故事扮演 提交于 2020-03-11 12:30:35
import java . util . Scanner ; //三层加密if-else嵌套,写if-else嵌套的时候从内到外 //import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable; public class XunHunQianTao { public static void main ( String [ ] args ) { // TODO Auto-generated method stub Scanner input = new Scanner ( System . in ) ; int y1 = 1234 , y2 = 5678 , y3 = 9012 ; int m1 , m2 , m3 ; int i = 1 , k = 1 , j = 1 ; System . out . println ( "<<欢迎来到微盟加密公司>>" ) ; System . out . println ( "友情提示,密码只能输入三次" ) ; while ( i <= 3 ) { System . out . println ( "请输入m1:" ) ; m1 = input . nextInt ( ) ; if ( m1 == y1 ) { System . out . println (

python下级模块导入上级模块出错

你。 提交于 2020-03-10 09:42:45
首先看看我的文件结构: 我现在所在的文件是运算符重载.py模块,需要导入test.py模块和classfile文件夹里的嵌套.py模块,按照大部分人的习惯: 也没有提示有错误,运行看看: 出错了,查看了一些博客,有的解决方法是说运行文件只能为最上级的,出错时候得将运行模块弄到最上层去,具体见博客: https://www.cnblogs.com/ArsenalfanInECNU/p/5346751.html 现在我想要解决的是:低层级的模块调用高层级的模块,找到了两种解决方式,第一种: import os import sys path = os . path . dirname ( os . path . dirname ( os . path . abspath ( __file__ ) ) ) sys . path . insert ( 0 , path ) import test from classfile . 嵌套 import Point test.py内的内容是: print ( "successfully import!" ) 来看看运行结果: 导入test.py模块和嵌套.py模块成功了。 看看第二种方法: import os import sys sys . path . append ( os . pardir ) # path = os.path

C语言嵌套循环详解

放肆的年华 提交于 2020-03-08 10:30:06
在C语言中,if-else、while、do-while、for 都可以相互嵌套。**所谓嵌套(Nest),就是一条语句里面还有另一条语句,**例如 for 里面还有 for,while 里面还有 while,或者 for 里面有 while,while 里面有 if-else,这都是允许的。 循环结构的嵌套。 示例1:for 嵌套执行的流程。 #include < stdio . h > int main ( ) { int i , j ; for ( i = 1 ; i <= 4 ; i ++ ) { //外层for循环 for ( j = 1 ; j <= 4 ; j ++ ) { //内层for循环 printf ( "i=%d, j=%d\n" , i , j ) ; } printf ( "\n" ) ; } return 0 ; } 运行结果: i = 1 , j = 1 i = 1 , j = 2 i = 1 , j = 3 i = 1 , j = 4 i = 2 , j = 1 i = 2 , j = 2 i = 2 , j = 3 i = 2 , j = 4 i = 3 , j = 1 i = 3 , j = 2 i = 3 , j = 3 i = 3 , j = 4 i = 4 , j = 1 i = 4 , j = 2 i = 4 , j = 3 i = 4

layer的嵌套打开弹出层

假装没事ソ 提交于 2020-03-07 06:54:26
当打开了一个layer.open()之后,如果在open的页面上面还有一个layer.open()去再次打开一个弹出层,这时候第二个打开的弹出层是在最早打开的基础上,然后镶嵌在里面的。 如果第一个弹出层很大,而第二个弹出层比较小,可能不会太影响用户体验;但是如果第一个弹出层很小,而第二个弹出层却很大,这时候效果就很不理想了。 想要这个第二个弹出层不嵌套在第一个弹出层中,通常的办法是使用window.top对象。 top.layer.open() 像这样就能在顶级页面(最底层)打开弹出层,遮罩也是完全覆盖了底层页面。 "不要在晚上做决定,因为可能睡醒你就什么都忘记了。" 来源: https://www.cnblogs.com/yanggb/p/12402490.html

notes on python

十年热恋 提交于 2020-03-05 23:12:53
iterator Behind the scenes, the for statement calls iter( ) on the container object. The function returns an iterator object that defines the method __next__() which accesses elements in the container one at a time. When there are no more elements, __next__() raises a StopIteration exception which tells the for loop to terminate.You can call the __next__() method using the next() built-in function 可以自己实现一个类的for loop: class A: class it: def __init__(s,a): s.a=a s.l=len(s.a.l)+len(s.a.l2) s.i=0 def __next__(s): if s.i==s.l: raise StopIteration a=0 if s.i<len(s.a.l): a= s.a.l[s.i] else: a= s.a.l2