• python 闭包


    闭包的真实含义:为访问外部函数的内部变量提供了条件。将函数的一切封闭到了函数内部,减少了函数的全局变量

    在函数内部定义一个函数,并且这个函数用到了外部函数的变量,那么将这个函数和这个函数用到的变量定义为 闭包(这些变量可能是外部函数的自己定义的变量,也可能是外部函数被调用传入的变量)

    python是面向对象的编程语言,python语言中的一切都是对象

    当定义一个函数后,可以用'函数名()'调用这个对象

    def sum(*args,**kwargs):
    print(args,kwargs)
    sum(1,2,3,5) # 使用函数名调用了定义的函数
    sum_other = sum # 使用另一个变量引用了sum函数对象
    sum_other(1,2,3,5,6) # 引用后也是可以进行调用原来的函数
    sum(1,2,3,4) # 原来的函数名还是可以调用函数的
    #结果
    D:pycharm_project装饰器venvScriptspython.exe D:/pycharm_project/装饰器/venv/text.py
    1 2 3 5
    1 2 3 5 6
    1 2 3 4
    

     根据闭包的定义写,写一个带有闭包的函数

    def make_closure(num):  # 此外层函数的作用是为内层函数提供了变量num
    
        def make_closure_1(num_in):  # 如果内部函数需要修改外部函数的变量需要使用nolocal+变量名(如果不用修改,只是使用则不需要使用nolocal)
            return num_in,num
        # return mum
        return make_closure_1  # 如果make_closure()被调用,则返回了make_closure_1()函数名
    
    f = make_closure(1)  # f = make_closure_1
    print(f(2))  # 通过f()调用了make_closure_1()
    
    # 结果
    D:pycharm_project装饰器venvScriptspython.exe D:/pycharm_project/装饰器/venv/text.py
    (2, 1)
    
    Process finished with exit code 0
    
  • 相关阅读:
    面向对象的----多态性
    UIWebView控件
    UIImageView控件
    UIDatePicker控件
    UIActivityIndicatorView控件
    UIProgressView控件
    XIB文件链接controller文件&&加载rootviewcontroller
    UISegmentedControl控件
    UISlider控件
    UISwitch控件
  • 原文地址:https://www.cnblogs.com/serpent/p/9443265.html
Copyright © 2020-2023  润新知