• 函数的动态参数,命名空间


    1 函数的动态参数

      1 *args位置参数动态传参    *在这里表示接收位置传参的动态传参,接收到的是元组

    def chi(*food):   #参数名:food   *表示动态传参
    print(food)
    chi("菜花","馒头","花卷","小吃")
    
    
    结果:(菜花,馒头,花卷,小吃)
    

      2 **kwargs关键字参数动态传参

    def chi(**food)            **关键字传参     food是参数名
    print(food)
    chi(冰淇淋="哈根达斯",零食="辣条",小吃="香肠")
    
    
    结果:{冰淇淋:"哈根达斯",零食:"辣条",小吃:"香肠"}   结果是形成字典
    

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

    def func(a,*args,c=6,**kwargs)
    print(a,args,c,kwargs)
    fun(2,12,23,c=4,哈哈="呵呵",多的="道德")
    
    结果:2 (12,23),{哈哈:"呵呵",多的:"道德"}
    

    形参的位置*,**,聚合

    def func(*food):      形参 聚合,位置参数
    print(food)
    lst =["鸡蛋","黄瓜","苹果"]

    fun(*lst)  实参 打散 把list,tuple,set,str进行迭代打散

     形参: 位置参数 按位置传参

             默认参数  放在后面

             动态参数   *args(形成元组)   **kwargs(形成字典)

    实参的位置*,**,打散

    def func(**kwargs):      形参  聚合成关键字实参
         print(kwargs)
    dic ={name:"alex",age:18}
    func(**dic)    实参  打散成关键字
    

     实参: 位置参数  按形参的位置传值

            关键字参数  按形参的关键字传值

             混合参数(位置在前,关键字在后)

    2 命名空间

    1 内置名称空间

    2 全局名称空间

    3 局部名称空间

    a =10   全局名称空间中的内容
    def fn():   fn 也在全局名称空间
        b=20      局部名称空间
        print(a)
    def gn():
        print(a)
    fn()
    gn()
    

     作用域

    1 全局作用域:内置+全局

    2 局部作用域 局部(函数被调用时)

    globals()查看全局中的内容

    a=110
    def fn():
       b =20   局部
       def gn():   局部
          print(globals())    可以查看全局作用域中的内容
          print(locals())   查看当前作用域中的内容
      gn()
    fn()
    

    locals()查看当前作用域中的内容

    3 函数的嵌套

    def outer():
        print("哈哈")
        def inner_1():
            print("呵呵")
            def inner_1_1():
                print("嘻嘻")
            inner_1_1()
            print("哄哄")
        def inner_2():
            print("嘿嘿")
        inner_2()
        inner_1()
    outer()

    结果:哈哈
     嘿嘿
    呵呵
     嘻嘻
     哄哄

    函数可以相互嵌套

    4 global和nonlocal关键

    global:在局部访问全局中的内容

    nonlocal:在局部寻找外层函数中里他最近的那个变量

    a=10
    def global a    作用:1 可以把全局中的内容引入到函数内部  2 在全局创建一个变量
         a=10
         a+=10
    print(a)
    
    a =10
    def outer():
        def inner():#inner中改变a的值
    nonlocal a  寻找外层函数中离他最近的那个变量 a=20 inner() outer()
  • 相关阅读:
    @Aspect 注解使用详解
    Mysql的4个隔离级别
    【学习笔记】二分类问题中的“最大似然”与“交叉熵损失”概念的理解
    【转】对“先验概率”与“后验概率”概念的通俗理解
    nginx——安装部署vue项目
    JWT
    Vue——自定义组件实现vmodel
    Vue——子级向父级传递参数
    SpringBoot2(十四)全局异常切面
    Vue——ElementUI表格分页
  • 原文地址:https://www.cnblogs.com/mlhz/p/9449525.html
Copyright © 2020-2023  润新知