zoukankan      html  css  js  c++  java
  • 函数的动态参数,命名空间

    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()
  • 相关阅读:
    asp.net mvc异常处理的不同方法
    获取计算机网络信息,包含IP,MAC
    MessageBox页面消息弹出框类
    centos7.4离线安装.NETCore3.1 环境
    .NET Core 3.0 WebApi 使用Swagger
    android隐藏apk方式以及apk之间的启动方式
    react native 更改项目包名
    react native windows下打包apk流程
    CentOS7下安装Redis
    EFCore配置多对多关系
  • 原文地址:https://www.cnblogs.com/mlhz/p/9449525.html
Copyright © 2011-2022 走看看