zoukankan      html  css  js  c++  java
  • 函数进阶------闭包函数

    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。    
  • 相关阅读:
    jquery操作select
    EL表达式
    八大排序算法之希尔排序
    八大排序算法之堆排序
    八大排序算法之归并排序
    yield与send实现协程操作
    详解生成器、迭代器
    类相关知识
    python装饰器大详解
    详解python之反射机制
  • 原文地址:https://www.cnblogs.com/52forjie/p/7252474.html
Copyright © 2011-2022 走看看