• day10 动态传参


    一动态传参

      1动态传参,可以接受任意的参数

        顺序: 位置参数   *args  默认值  **kwargs

      1位置参数的动态传参 写法*参数名  例如  *args 接受的参数是tuple

    # def eat(*good): #动态传参,可以接受多个实参
    #     print(good)
    # eat("可乐","麻辣烫","火锅")
    # eat("麻辣烫")   #接受的是元祖,括号里面的元素每个用逗号隔开
    

      2关键字参数的动态传参, 写法 ** 参数名  例如**keargs 接受的参数是dict类型

      

    # def eat(**kwargs): #接受的是关键字参数,也可接受多个传参
    #     print(kwargs)
    # eat(good="麻辣烫,盖浇饭",fruit="苹果",drink="七喜") #字典
    

      3 无敌传参

        def  fun(*args,**keargs):

          pass

    # def rat(*args,**kwargs):#接受的是位置参数跟关键字参数
    #     print(args,kwargs)
    # rat(1,6,65,95+9,a=6,n=6) #打印的是元祖加字典
    

      

      *,**的作用:

        在形参:聚合

    def fun(**kwargs):  #吧打散的在聚合
        print(kwargs)
    dic={"a":[1,2,3],"b":2}
    fun(**dic)  # 吧字典打散
    

    二  作用域的问题

      1.globals()获取全局作用域的内容

      2.locals()获取局部作用域中的内容

    # a = 10
    # def func():
    #     global a # 这里用的a是全局的
    #     a = 20
    #     print(a)
    # func()
    # print(a)    # 20
    
    a = 10
    def func1():
        a = 20
        print(a)
        def fun2():
            nonlocal a # 上一级, 且不能是全局
            a = 30
            print(a)
        fun2()
        print(a)
    
    func1()
    print(a)
    

    三 函数嵌套-函数的执行流程

      所有的()表示的是函数的调用

    # def fun1():
    #     print(111)
    #
    # def fun2():
    #     print(222)
    #     fun1()
    #
    # fun2()
    # print(333)
    
    # def fun2():
    #     print(222)
    #     def fun3():
    #         print(666)
    #     print(444)
    #     fun3()
    #     print(888)
    #
    # print(33)
    # fun2()
    # print(555)
    # def func():
    #     print("哈哈哈")
    # a = func # 函数可以赋值 .相当于. a和func是一回事儿
    # func()
    # a()
    

    四 global和nonlocal

      1global:寻找全局作用域中的内容

    # a = 10
    # def func():
    #     global a # 这里用的a是全局的
    #     a = 20
    #     print(a)
    # func()
    # print(a)    # 20
    

      2nonlocai:寻找上一级作用域中的内容,但不能是全局的

    a = 10
    def func1():
        a = 20
        print(a)
        def fun2():
            nonlocal a # 上一级, 且不能是全局
            a = 30
            print(a)
        fun2()
        print(a)
    
    func1()
    print(a)
    

    五额外追加的内容 命名空间

    a = 10  # 全局
    def func(): # 全局
        a = 40  # 局部
        b = 20  # 局部
        def abc():  # 局部
            d = 30 # 是局部
            print("哈哈")
            print(a, b) # 这⾥使⽤的是局部作⽤域
            print(locals())
        abc()
    
        # print(globals()) # 打印全局作用域中的内容
        # print(locals()) # 打印局部作用域中的内容,locals()打印当前这个函数局部作用与中的内容
    func()
    
    print(globals())
    # print(globals()) # 打印全局作用域中的内容
    

      

      

  • 相关阅读:
    显示Unicode 字节的对应字符的小技巧
    apktool 打包解包apk的总结
    Android Studio下载新的AVD映像把C盘给占满了
    微信开发记录
    node.js版本升级
    Cordova+FrameWork7开发简单教程
    centos安装 Falcon+
    centos7安装 go
    bash: /home/aprilpeng/.bashrc: Permission denied
    git push问题 objects/pack/tmp_pack_XXXXXX': Permission denied
  • 原文地址:https://www.cnblogs.com/daien522556/p/9172970.html
Copyright © 2020-2023  润新知