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. filter_var 函数()绕过执行命令

    escape 过滤器来过滤link,而实际上这里的 escape 过滤器,是用PHP内置函数 htmlspecialchars 来实现的 htmlspecialchars 函数定义如下: htmlsp ...

  2. Go string 一清二楚

    前言 字符串(string) 作为 go 语言的基本数据类型,在开发中必不可少,我们务必深入学习一下,做到一清二楚. 本文假设读者已经知道切片(slice)的使用,如不了解,可阅读 Go 切片 基本知 ...

  3. SwiftUI error All In One

    SwiftUI error All In One Instance member xxx cannot be used on type yyy Instance member 'game' canno ...

  4. Gradle & Java

    Gradle & Java Gradle Build Tool I Modern Open Source Build Automation https://gradle.org/ https: ...

  5. Microsoft Lifecycle Policy

    Microsoft Lifecycle Policy The Microsoft Lifecycle Policy gives you consistent and predictable guide ...

  6. React & CSS Modules & CSS in JS

    React & CSS Modules & CSS in JS https://codesandbox.io/s/css-modules-name-mangling-ck1eo CSS ...

  7. JsBridge & Android WebView

    JsBridge & Android WebView webview loadUrl addJavascriptInterface .setJavaScriptEnabled(true); f ...

  8. 运行Chrome浏览器如何添加Options

    原文档 Options Windows: 退出Chrome的所有正在运行的实例. 右键单击"Chrome"快捷方式 选择属性 在"目标:"行的末尾添加命令行标志 ...

  9. MySQL全面瓦解22:索引的介绍和原理分析

    索引的定义 MySQL官方对索引的定义为:索引(Index)是协助MySQL高效获取数据的数据结构. 本质上,索引的目的是为了提高查询效率,通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时 ...

  10. 谷歌地球服务器"失联"的替代方案

    2020年11月下旬,谷歌地球开始无法连接.作为谷歌地球的替代方案,推荐使用国产软件"图新地球LSV".网址 http://www.tuxingis.com 下载"图新地 ...