python允许在定义函数的时候,其函数体内又包含另外一个函数的完整定义,这就是我们通常所说的嵌套定义。
为什么?因为 函数是用def语句定义的,凡是其他语句可以出现的地方,def语句同样可以出现。
像这样定义在其他函数内的函数叫做内部函数,内部函数所在的函数叫做外部函数。当然,我们可以多层嵌套,
这样的话,除了最外层和最内层的函数之外,其它函数既是外部函数又是内部函数。

实例1:

def foo():         #定义函数foom=3            #在foo函数内定义变量m=3def bar():     #在foo函数内定义函数barn=4        #在bar函数内定义局部变量n=4print m+n  bar()         #在foo函数内调用bar函数print mfoo()    #调用foo函数

结果:
7
3

实例2:

spam = 99     #定义全局变量spam
def tester():def nested():global spamprint 'spam=',spam  #打印全局变量的值spam += 1           #修改全局变量的值return nested           #tester函数的返回值是nested函数t=tester()    #调用函数tester,将得到的返回值赋给t
print type(t) #返回值t的类型是function
print t       #打印返回值的信息
tester()()    #调用函数tester,得到的返回值是nested函数对象,最后调用函数nested
print 'spam=',spam    #打印修改后的全局变量的值

结果:
<type 'function'>
<function nested at 0x02937CF0>
spam= 99
spam= 100

python 函数的嵌套定义 and 函数的返回值是函数相关推荐

  1. Python基础day05【函数(局部变量、全局变量、多函数执行流程、函数返回值、函数参数)、拆包、引用、可变与不可变类型、函数注意事项】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day05[函数(函数传参的两种形式.函数形参).拆包.引用.可变与不可变类型.引 ...

  2. python 函数可以作为容器对象的元素_python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义...

    复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可 ...

  3. Python基础第六天——函数的使用、函数的参数、函数的返回值、函数的嵌套、命名空间、作用域、函数对象...

    一.拾遗 1.通常情况下无参函数只是进行操作,所以不需要返回值:有参数函数则需要返回值. 2.练习: 判断用户输入一串字符,如果这串字符的长度小于5则重新输入,如果大于5则退出循环. while Tr ...

  4. python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce、map、filter)

    python函数+定义+调用+多返回值+匿名函数+lambda+高级函数(reduce.map.filter) Python 中函数的应用非常广泛,比如 input() .print().range( ...

  5. C语言嵌套函数封装替换,函数可以嵌套定义但不能嵌套调用吗,嵌套函数

    函数可以嵌套定义但不能嵌套调用吗一个函数可以被定义为嵌套的,但不能被称为嵌套的吗,不对,函数可以嵌套调用,但不能嵌套定义.在C语言中,所有函数都是并行的,即定义函数时相互独立,一个函数不从属于另一个函 ...

  6. python函数用法详解2(变量的作用域(全局变量、局部变量)、共享全局变量、函数返回值、函数的参数(位置参数、关键字参数、默认参数、不定长参数)、拆包、交换变量值、引用、可变和不可变类型)

    1. 变量作⽤域         变量作⽤域指的是变量⽣效的范围,主要分为两类:局部变量和全局变量. 局部变量         定义在函数体内部的变量,即只在函数体内部⽣效. def testA(): ...

  7. python中return返回值为函数名_Python函数返回值

    Python函数返回值教程 同时,Python 函数的返回值不需要在函数的签名上体现,只需要在函数体里面直接使用 return 语句返回即可. Python函数不返回值详解 语法 def func_n ...

  8. golang 函数一 (定义、参数、返回值)

    对于GoLang函数的定义或者说理解: 函数是结构化编程中最小的模块单元,日常开发过程中,将复杂的算法过程分解为若干个小任务(代码块),使程序的结构性更清晰,程序可读性提升,易于后期维护和让别人读懂你 ...

  9. day09 -- 函数基础之函数的定义、返回值以及函数的参数

    目  录 一.函数的定义 二.函数的返回值 三.函数的参数 位置参数 默认值参数 可变长参数 一.函数的定义 函数定义的3中方式: 1.有参函数:定义时有参,调用时也要传入参数 def func(x, ...

  10. go函数详解:函数定义、形参、返回值定义规范、函数内存分析、不支持重载、支持可变参数、基本数据类型和数组默认都是值传递的、支持自定义数据类型、函数返回值命名

    引入 [1]为什么要使用函数: 提高代码的复用型,减少代码的冗余,代码的维护性也提高了 [2]函数的定义: 为完成某一功能的程序指令(语句)的集合,称为函数. [3]基本语法 func 函数名(形参列 ...

最新文章

  1. soundtouch源码分析__based on csdn :
  2. CentOS6.5下做DNS服务器
  3. 批量修改所有服务器的dbmail配置
  4. 阿里云CentOS7安装Oracle11GR2
  5. 苹果手机怎么设置时间24小时制_8款手机电池测试,iPhone 12 5G让人意外
  6. 网工面对HR应该提前做好哪些准备?
  7. MyCat 入门指南
  8. 第八章 PX4-SDlog解析
  9. Vue 消除Token过期时刷新页面的重复提示
  10. 通过判断流的头 判断文件类型
  11. 计算机基础(一):ION IOMMU 内存申请
  12. 2015年度总结-面对真实的自己
  13. 【手写数字识别】基于matlab GUI BP神经网络手写数字识别(导图+带面板)【含Matlab源码 320期】
  14. android屏幕漂移,手机屏幕不受控制乱跳 触屏“飘逸”的解决方法
  15. 表白页php制作html静态网页,九款表白网页源码静态HTML5下载
  16. 如何批量将图片转换为 Word 文档
  17. java下cmyk图片读取和转换rgb,以及图片压缩
  18. 震旦打印机扫描件到电脑设置流程
  19. windows自带日文输入法突然显示假名与敲击的按键不一致
  20. Linux网络之DNS域名解析概述

热门文章

  1. 精彩回顾 | 一张图读懂OPPO应用与数据安全防护
  2. mybatis 列索无效的问题:
  3. 谷歌跟oracle_Oracle诉Google,我的甜心领主
  4. c语言输出300 800之间最大的素数,辅助谁一级伤害最高?东皇:300,盾山:800,最强混子输出超1000...
  5. 骨传导蓝牙耳机哪个品牌好,目前最好用的五款骨传导耳机
  6. css3实现当鼠标经过图片是 图片上有一道倾斜的闪光划过
  7. 全面实施国六排放标准,对二手车交易有什么影响?
  8. STM32学习笔记 | CAN总线收发数据常见问题分析
  9. 基于Windows API的VC++串口通信详解
  10. vue3评论回复功能