zoukankan      html  css  js  c++  java
  • 函数的嵌套和作用域链 (a,周六周日详细整理)

    # def max(a,b):
    # return a if a>b else b
    #
    # def the_max(x,y,z): #函数的嵌套调用
    # c = max(x,y)
    # return max(c,z)
    #
    # print(the_max(1,2,3))

    #函数的嵌套定义
    #内部函数可以使用外部函数的变量
    # a = 1

    # a = 1
    # def inner():
    # a = 2
    # def inner2():
    # nonlocal a #声明了一个上面第一层局部变量
    # a += 1 #不可变数据类型的修改
    # inner2()
    # print('##a## : ', a)
    # inner()
    # print('**a** : ',a)

    # outer()
    # print('全局 :',a)

    #nonlocal 只能用于局部变量 找上层中离当前函数最近一层的局部变量
    #声明了nonlocal的内部函数的变量修改会影响到 离当前函数最近一层的局部变量
    # 对全局无效
    # 对局部 也只是对 最近的 一层 有影响
    # a = 0
    # def outer():
    # # a = 1
    # def inner():
    # # a = 2
    # def inner2():
    # nonlocal a
    # print(a)
    # inner2()
    # inner()
    #
    # # outer()

    # def func():
    # print(123)
    #
    # # func() #函数名就是内存地址
    # func2 = func #函数名可以赋值
    # func2()
    #
    # l = [func,func2] #函数名可以作为容器类型的元素
    # print(l)
    # for i in l:
    # i()

    def func():
    print(123)

    def wahaha(f):
    f()
    return f #函数名可以作为函数的返回值

    qqxing = wahaha(func) # 函数名可以作为函数的参数
    qqxing()


    # def outer():

  • 相关阅读:
    file.delete()删除文件失败
    Axure RP Extension for Chrome插件离线安装
    C#---EF映射MySQL
    C#--二维数组
    MySQL--增删改查分页存储过程以及事务
    C# --MVC实现简单上传下载
    配置SQLServer,允许远程连接
    C#——工厂模式
    C#--条形码和二维码的简单实现
    C#—接口和抽象类的区别?
  • 原文地址:https://www.cnblogs.com/qinghuani/p/8128462.html
Copyright © 2011-2022 走看看