• 函数,动态传参,动态关键字参数,作用域,关键字global和nonlocal


    今日内容总结:

    一.函数参数--动态传参
    动态参数必须是在位置参数后面,比如:
    def chi(a,b,*food):
    print("我要吃",a,b,food)
    chi("大米饭","小米饭","黄瓜","西红柿")

    默认值参数必须是在最后位置,比如:
    def chi(a,b,*food,c="馒头"):
    print(a,b,food,c)
    chi("香蕉", "菠萝")
    chi("香蕉", "菠萝","葫芦娃")
    chi("香蕉", "菠萝","葫芦娃", "口罩")

    顺序: 位置参数, 动态参数*, 默认值参数.

    动态关键字参数,现在是一个dict,比如:
    def func(**kwargs):
    print(kwargs)
    func(a=1,b=2,c=3)

    最终顺序: 位置参数 > *args动态参数 > 默认值参数 > **kwargs动态关键字参数

    # fun(*lst)
    # s = "臣妾做不到"
    # fun(*s)
    #元祖打散

    # def fun(**kwargs):
    # print(kwargs)
    # dic = {'a':1, 'b':2}
    # fun(**dic)
    # 字典打散

    二.名称空间,局部,全局,作用域,加载顺序
    给存放名字和值的关系的空间起一个名字叫 命名空间,变量在存储的时候就是存储在这片空间中的.
    命名空间分类:
    1全局命名空间 直接在py文件中,函数外声名的变量都属于全局命名空间
    2局部命名空间 在函数中声名的变量会放在局部空间
    3内置命名空间 存放python解释器为我们提供的名字.

    作用域:
    顶格的是全局作用域.
    在全局作用域里 后面的,是局部作用域.
    globals,可以查看全局作用域里面有哪些东西.
    locals,可以查看当前作用域.

    三.函数的嵌套
    # def fn():
    # print(111)
    # def fn2():
    # print(222)
    # fn()
    # fn2()
    # print() 执行顺序,先调用的先执行,后调用的后执行.
    #
    # def fu2():
    # print(222)
    # def fu3():
    # print(333)
    # print(444)
    # fu3()
    # print(888)
    # print(33)
    # fu2()
    # print(55) 33 222 444 33 888 55 调用会返回,不调用就会继续往下执行.

    四.关键字global和nonlocal

    global表⽰示. 不再使⽤用局部作⽤用域中的内容了了. ⽽而改⽤用全局作⽤用域中的变量量
    nonlocal 表⽰示在局部作⽤用域中, 调⽤用⽗父级命名空间中的变量量.
  • 相关阅读:
    无缝滚动效果实现
    js模拟滚动条插件一二
    powerDesigner15.1破解
    解决asp.net 中GridView中隐藏过长的数据(使用ToolTip)
    IE6下弹出div覆盖select下拉框
    sql中的常用函数结合实现截取替换功能
    【.NET重修计划】数组,集合,堆栈的问题
    Redis可视化工具推荐
    Redis中String类型的相关命令操作
    Redis的五大数据类型以及key的相关操作命令
  • 原文地址:https://www.cnblogs.com/asdlo/p/9451838.html
Copyright © 2020-2023  润新知