• 函数进阶------闭包函数


    1,命名空间:

    定义:存放名字与值的绑定关系。

    一个分为三种:全部命名空间,局部命名空间,内置命名空间。

    内置命名空间:就是python为我们内置的一些可以直接拿来用的方法。

    三种空间的加载顺序:内置命名空间(程序加载前)---全局命名空间(从上到下的顺序)----局部命名空间(调用的时候才开辟的空间)

    2:作用域

    定义:作用域就是作用范围

    分为2中:内置名称空间和全局名称空间

    3:globals:把局部名称空间的转化成全局名称空间,但是在所有的高级语言中,

    都不常用,没到不得已的时候不要用。

    locals:把全局名称空间变为局部名称空间。

    nonlocal关键字

    外部必须有这个变量
    在内部函数声明nonlocal变量之前不能再出现同名变量
    内部修改这个变量如果想在外部有这个变量的第一层函数中生效
    4,函数名的本质就是要个变量。
    5.闭包函数:
    内部函数包含对外部作用域而非全局作用域名字的引用,就叫闭包函数。
    只要内部函数引用了外部作用域的变量,外面的变量就不会消失,以便以后的随时调用。
    基本模型:
    def func():
        name = 'eva'
        def inner():
            print(name)
    
    

    判断闭包函数的方法__closure__

    1 def func():
    2     name='alex'
    3     def inner():
    4         print(name)
    5     print(inner_closure_)
    6     
    7      return inner
    8 print(func())   
    View Code

    当运行后,如果有cell的话,就表示是闭包函数。

    如果没有就不是。

    三元算法

    def my_max(x,y):
        m=x if x>y else y
        return m
    print(my_max(10,20))
    这里的m=x if x>y else y就是一个三元算法。
    前面m=x表示的是if x>y m=x,如果不是就是m=y。    
  • 相关阅读:
    ContentProvider
    铃声设置
    TTS技术
    http://www.w3cschool.cc/jqueryui/jqueryui-tutorial.html
    HttpHelper
    .net面试题
    函数和原型
    关于递增运算符
    CSS学习笔记
    CSS/CSS3 如何实现元素水平居中
  • 原文地址:https://www.cnblogs.com/52forjie/p/7252474.html
Copyright © 2020-2023  润新知