1. 匿名函数

      lambda的用法:

      lambda x:x+1

      解释,同等于以下函数

      def test(x):

      return x+1

      因为没有函数名,所以称为匿名函数

      只适用于简易的逻辑,复杂逻辑无法实现

      lambda一般是嵌套在其他内容中,只是为了简化代码

    2. 函数作用域

      理解全局变量和局部变量的概念

      全局变量,定义的变量无缩进,即在代码层最外围;

      局部变量,定义的变量有缩进,属于某个代码块中。

      全局变量:

      a  = 1

      def test():

      print(a)    #结果为1

      print(a)    #结果为1

      局部变量:

      def test():

      a = 1

      print(a)    #结果为1

      print(a)    #报错,找不到a变量

      ○上一级作用域范围内无法调取下一级作用域的变量

      因为函数运行结束后,被释放掉了,其中所有内容都不存在了

      全局变量和局部变量的关系

      a = 1

      def test():

      a = 2

      print(a)    #结果a = 2

      print(a)    #结果a = 1

      函数内部的重新定义同名局部变量,不会影响全局变量,函数输出的时候,会现在当前作用域寻找改变了,找不到,就去上一级去找,再找不到,再去上一级,直到全局作用域。

      如果在函数内需要对变量进行操作,比如加1减1之类,必须在当前作用域定义,或者申明【global】和【nonlocal】

      global:在该作用域内申明该变量为全局变量,出现对该变量的操作,即为对全局变量的操作,改变后,同步改变全局变量(因为,你没有新定义变量,如果你是新定义的,就改变你定义的,不改变全局)

      nonlocal:在该作用域内申明该变量为局部变量,在嵌套体系内寻找上一层的局部变量

      如果什么都不写,会自动返回寻找上一层的该变量,如果上一层没有,就再往上一层找。

    3. 闭包

      闭包是函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包

      【个人理解为,嵌套函数中,外层函数返回内层函数名,可以将变量在第一层做修改后,放入下一层去运行】

      def fun(a):
              a = a + 1
          def func(x):
              print(a**x)
          return func

      fun(1)(2)       #结果为4

    4. 递归

      递归就是函数在结尾自己 调用自己

      def calc(x)

      print(x)

      calc(x)    #无脑循环

      递归原则,其作用范围应该是越来越小,即他有个结尾,不然无脑循环肯定报错

    5. 回调

      回调就是函数之间调用的一种情况

      s = int(input('请输入有效值'))

      def fun1():
          print('人间至帅--疏楼龙宿')

      def fun(x,y):
          if y > 1:
                      x()
          else:
              print("出错了")

      fun(fun1,s)

      即在该函数中,fun1函数被传入fun函数中,通过判断后其他条件来决定是否运行该函数,按照函数的规则一步步运行即可

python基础学习之函数进阶【匿名函数、作用域关系、闭包、递归】的更多相关文章

  1. python 基础学习笔记(6)--函数(2)

                                                                                                        ...

  2. Python基础学习笔记(十一)函数、模块与包

    参考资料: 1. <Python基础教程> 2. http://www.runoob.com/python/python-functions.html 3. http://www.liao ...

  3. Python基础-列表推导式、匿名函数、os/sys/time/datetime/pymysql/xlwt/hashlib模块

    列表推导式 [表达式 for 变量 in range(n) if 条件]  等效于 for 变量 in in range(n): if 条件: 表达式 优点:书写方便,缺点:不易读 注意:用的是方括号 ...

  4. python基础之函数式编程、匿名函数、内置函数

    一 函数式编程 不修改外部状态. 模仿数学里得函数进行编程. 用函数编程写出得代码相当精简. 可读性比较差. 例子: y=2*x+1 x=1 def test(x): return 2*x+1 tes ...

  5. python 基础学习笔记(6)--函数(1)

    ## **函数(1)** **函数的定义:** 1. [ ] 小时候大家应该都玩过乐高积木,只要通过想象和创意,可以用它怕拼凑出很多神奇的东西.随着学习的深入,编写的代码日益增加并且越来越复杂,所以需 ...

  6. python基础学习1-类相关内置函数

    #!/usr/bin/env python # -*- coding:utf-8 -*- #===issubclass(class,classinfo) 检查class是否是classinfo类的子类 ...

  7. Python基础学习笔记,进阶学习笔记 出处

    参考 虫师-博客 http://www.cnblogs.com/fnng/category 随笔分类相关文章

  8. Python基础学习四

    Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...

  9. python基础学习Day14 内置函数 匿名函数

    一.内置函数里几个高频重要函数 (1)min\max函数的用法 以min函数的为例: min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值). l1 =[(,),(, ...

  10. python函数式编程之返回函数、匿名函数、装饰器、偏函数学习

    python函数式编程之返回函数 高阶函数处理可以接受函数作为参数外,还可以把函数作为结果值返回. 函数作为返回值 def laxy_sum(*args): def sum(): ax = 0; fo ...

随机推荐

  1. IDEA 安装常用操作二

    一.IDEA启动慢,因为启动时编译.缓存.创建索引等,如果断电等启动异常,可以让缓存索引失效 迁移IDEAD时,可以找到config.system等文件夹, 随着时间使用越久,空间占用越大,另外觉得浪 ...

  2. USB2.0协议学习笔记---基本概念

    概念  USB是一种串行通信总线(Universal Serial Bus),经历的版本有USB1.0,USB1.1.USB2.0等.USB是一种主从模式的结构,因此它无法在设备与设备.主机与主机之间 ...

  3. jira 优先级过滤

    jira 优先级过滤 priority project = DAP AND issuetype = 故障 AND priority = high AND resolution = Unresolved ...

  4. 使用 js 实现十大排序算法: 归并排序

    使用 js 实现十大排序算法: 归并排序 归并排序 refs js 十大排序算法 All In One https://www.cnblogs.com/xgqfrms/p/13947122.html ...

  5. UI Design & App & Free Icons

    UI Design & App & Free Icons icons8 https://icons8.com https://icons8.com/ouch Ouch可以帮助那些不进行 ...

  6. Flutter: MobX和flutter_mobx状态管理器

    MobX.dart网站上的 " 入门指南" mobxjs video 组织Stores 安装依赖 dependencies: mobx: flutter_mobx: dev_dep ...

  7. pycharm + git+gitlab的可视化界面操作

    前言: 写这篇博​​客,主要为了记录一套经过本人实践,并运行通过的操作gitlab流程. 通过以下步骤,可实现最基本的远程服务器(gitlab)和本地工具(pycharm)的,针对两端文件增删改查的及 ...

  8. 17_MySQL分组查询的应用

    本节涉及SQL语句: -- 分组查询 SELECT deptno,AVG(sal) FROM t_emp GROUP BY deptno; -- 四舍五入 SELECT deptno,ROUND(AV ...

  9. C语言指针基本知识

    对程序进行编译的时候,系统会把变量分配在内存单位中,根据不同的变量类型,分配不同的字节大小.比如int整型变量分配4个字节,char字符型变量分配1个字节等等.被分配在内存的变量,可以通过地址去找到, ...

  10. Python序列之列表(一)

    在Python中,列表是一种常用的序列,接下来我来讲一下关于Python中列表的知识. 列表的创建 Python中有多种创建列表的方式 1.使用赋值运算符直接赋值创建列表 在创建列表时,我们直接使用赋 ...