zoukankan      html  css  js  c++  java
  • 函数闭包,golbal,nonlocal

    测试1:

    age = 19
    def func1():
        age = 73
        def func2():
            nonlocal age
            # global age
            # age = 11
            print('func2 内',age)
        func2()
        print('func1 内',age)
    func1()
    print('外 ',age)
    输出: 
    func2 内 73
    func1 内 73
    外  19
    

    测试2:

    age = 19
    def func1():
        age = 73
        def func2():
            # nonlocal age
            global age
            # age = 11
            print('func2 内',age)
        func2()
        print('func1 内',age)
    func1()
    print('外 ',age)
    输出:
    func2 内 19
    func1 内 73
    外  19
    

    测试3:

    age = 19
    def func1():
        age = 73
        def func2():
            # nonlocal age
            global age
            age = 11
            print('func2 内',age)
        func2()
        print('func1 内',age)
    func1()
    print('外 ',age)
    
    输出:
    func2 内 11
    func1 内 73
    外  11
    

    测试4:

    age = 19
    def func1():
        age = 73
        def func2():
            nonlocal age
            # global age # global必须在本作用域中声明age之前使用
            age = 11
            print('func2 内',age)
        func2()
        print('func1 内',age)
    func1()
    print('外 ',age)
    输出:
    func2 内 11
    func1 内 11
    外  19
    

    测试5

    name = 'alex' #name=‘lhf’
    
    def change_name():
        name='lhf'
        print('00', name)
        # global name   # global必须在本作用域中声明age之前使用
        name = 'lhf'
        # name='aaaa' #name='bbb'
        def foo():
            # name = 'wu'
            # nonlocal name
            name='bbbb'
            print('02',name)
        print('01',name)
        foo()
        print('03',name)
    
    change_name()
    输出:
    00 lhf
    01 lhf
    02 bbbb
    03 lhf
    
    写入自己的博客中才能记得长久
  • 相关阅读:
    正则匹配、替换
    C# 算法
    .Net Core 初体验及总结(内含命令大全)
    docker 开放 2375端口
    docker 中 mysql group by 报错
    微信小程序全局变量改变监听
    Linux 中 IDEA 不能调试(Debug)项目
    JavaMail发送邮件后再通过JavaMail接收格式问题
    Linux 安装 RabbitMQ
    SpringBoot 集成 Swagger
  • 原文地址:https://www.cnblogs.com/heris/p/14684581.html
Copyright © 2011-2022 走看看