python函数嵌套定义
python的这个特性是很特别的,与C#和C++都不一样。请看下面的例子
def outFun():
def innerFun_0():#1.在内部定义一个函数
print("i am first innerFun")
return def innerFun_1():#2.在内部定义另外一个函数
print("i am second innerFun")
return innerFun_0() #3.使用innerFun_0
innerFun_1() #4.使用innerFun_2 return outFun()#5.调用outFun函数
执行结果:
i am first innerFun
i am second innerFun
在outFun这个函数内部,定义了innerFun_0和innerFun_1,随后也使用了这两个函数。
其实完全可以吧这两个函数写在outFun的外面,如下,执行结果一样。
def innerFun_0():
print("i am first innerFun")
return def innerFun_1():
print("i am second innerFun")
return def outFun():
innerFun_0()
innerFun_1()
return outFun()#调用outFun函数
那么,问题来了,为啥python要搞这种方式呢,可能就是为了说明劳资怎么玩都可以,就是灵活
python函数嵌套定义的更多相关文章
- python笔记--3--函数、生成器、装饰器、函数嵌套定义、函数柯里化
		
函数 函数定义语法: def 函数名([参数列表]): '''注释''' 函数体 函数形参不需要声明其类型,也不需要指定函数返回值类型 即使该函数不需要接收任何参数,也必须保留一对空的圆括号 括号后面 ...
 - Python函数的定义、参数传入与函数的调用
		
作为计算机代码的一种抽象方式,函数在Python中扮演了极为重要的角色.今天给大家介绍Python函数的定义.参数的传入以及调用方式.其中函数参数的传入方式为本节重点内容.Python函数的参数形式包 ...
 - 孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归
		
孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python函数非常的灵活,今天学习了python函数的以 ...
 - 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
		
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
 - Python--day12(三元表达式、函数对象、名称空间与作用域、函数嵌套定义)
		
今日主要内容 1. 函数默认值细节(*) 2. 数据类型补充:三元表达式.列表推导式.字典推导式 (***) 3. 函数对象:函数名的各种应用场景 (*****) 4. 名称空间与作用域:解释 ...
 - python函数,定义,参数,返回值
		
python中可以将某些具备一定功能的代码写成一个函数,通过函数可以在一定程度上减少代码的冗余,节约书写代码的时间.因为有一些代码实现的功能我们可能会在很多地方用到. 1.函数的声明与定义 通过def ...
 - Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)
		
今日主要内容 1. 函数的嵌套定义 2. global.nonlocal关键字 3. 闭包及闭包的应用场景 4. 装饰器 1. 函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有 ...
 - day13(函数嵌套定义,global,nonlocal关键字,闭包,装饰器)
		
一,复习 ''' 1.函数对象:函数名 => 存放的是函数的内存地址 1)函数名 - 找到的是函数的内存地址 2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => ...
 - 函数嵌套定义,闭包及闭包的应用场景,装饰器,global.nonlocal关键字
		
函数的嵌套定义 在一个函数的内部定义另一个函数 为什么要有函数的嵌套定义: 1)函数fn2想直接使用fn1函数的局部变量,可以将fn2直接定义到fn1的内部,这样fn2就可以直接访问fn1的变凉了 2 ...
 
随机推荐
- lumion的基本操作,天气系统,景观系统。5.25
			
1.打开场景,按住鼠标右键可以选择方向. 2.向前移动:W,向后移动S,亦可以用鼠标滚轮向前或者向后滚.向左A向右D, 3.Q提升视角,E下降视角. 4.鼠标滚轮点下去,进行提升和下降视角.左右移动, ...
 - 自动化测试-8.selenium操作元素之键盘和鼠标事件
			
前言 在前面的几篇中重点介绍了一些元素的定位方法,定位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...
 - selenium+grid做分布式测试
			
一.grid介绍 1.本文用的是selenium-server-standalone-3.8.1.jar 2.Firefox用的55版本和对应的驱动 二.grid使用流程说明比如有个A机器,作用是hu ...
 - NAS (Network Attached Storage)
			
当电脑硬盘容量满了,多数使用者第一个想法就是买一块几TB的硬盘来扩充,如果是笔电的使用者,第一个想到的是买一个外接式硬盘来备份资料,这样的想法并没有错,那是当你还不知道有「NAS」这个好用的东西,才会 ...
 - 2018年4月中旬的PTA(三)
			
C高级第三次PTA作业(1) 题目6-1 输出月份英文名 1.设计思路 (1)算法(子函数) 第一步:定义字符型一级指针子函数名getmonth,形参整型n. 第二步:定义长度为12的字符数组指针mo ...
 - 文笔很差系列1 - 也谈谈AlphaGo
			
距离AlphaGo击败李世石已经过去数月了,心中的震撼至今犹在,全刊报道此项比赛的<围棋天地>杂志我已经看了不下十遍.总也想说点自己的意见,却也不知道从哪里说起,更不知道想表达些什么. 作 ...
 - Linux下使用Nginx代理访问json文件报404错误
			
在网上看了很多,都说是IIS的问题,关键是使用servlet就可以正常访问,使用Nginx就不行,最后发现是其他问题,解决方案如下: 1.确认配置的路径是否正确,Nginx代理的路径和你访问的路径. ...
 - node day1 login
			
https://blog.csdn.net/weixin_33901641/article/details/85967847 vue之node.js的简单介绍 http://nodejs.cn/ ht ...
 - 二、tcp/ip基础知识
			
一.TCP/IP的标准化 1.TCP/IP的含义 一般来说,TCP/IP是利用IP进行通信时所必须用到的协议群的统称. 具体点,IP或ICMP.TCP或UDP.TELENT或FTP.以及HTTP等都属 ...
 - Javascript 来判断数组的假值如 null false "" NaN
			
Javascript 来判断数组的假值如 null false "" NaN function bouncer(arr) { arr = arr.filter(function(a ...