zoukankan      html  css  js  c++  java
  • 19-3-14Python中函数的进阶

    1.动态参数:

      

    def func(*args):    #在形参位置*叫做聚合
        print(args)     #元组形式
    
    func(1,2,3,4,5,6)
    
    def func(**kwargs):  # 动态关键字参数
        print(kwargs)
    
    
    func(a=1, b=2, c=3)  # 关键字的形式传参

    *args 和 **kwargs

      是可以更换的,但是程序员约定都用它

      用途:在不明确接收参数、数量时使用*args和**kwargs

    位置参数>动态的位置参数

    形参:位置>动态位置>默认参数>动态默认参数

    实参:位置>关键字参数

    在实参调用的时候,*将可迭代的对象打散,字典是将键取出

    在形参出现*就是在聚合

    在实参调用的时候,**将字典打散成  关键字参数(键=值)

    在形参处出现**就是将关键字参数聚合成一个字典。

      注意:参数arg*args**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。

    2.函数的注释

      print(aaa._doc_)查看注释

    3.名称空间

    1.     内置空间中所有代码——内置空间

    2.     自己写的py文件——全局空间

    3.     函数中的代码——局部空间

    *注:

           加载顺序:
                        
    内置空间——>全局空间——>局部空间

           查找值的顺序:

                         局部空间——>全局空间——>内置空间——>报错

                  作用域:

                                全局作用域 内置+全局=全局作用域

     

                                局部作用域 函数内的就是局部作用域

    a = 10
    
    def func():
        global a        #global:声明a为全局变量。//找到要修改的值,修改后放回
        a += 1
    
    func()
    print(a)

    4.函数的嵌套

    第一种函数嵌套:函数嵌套函数

    第二种函数嵌套:多个函数嵌套

    5.global nonlocal

    nonlocal:在一个局部空间内,nonlocal会修改离他最近的那个变量,如果上一层没有就继续向上找,直到走到局部空间头部,都没有则报错。

     

                  global:在局部修改全部变量,如果没有就创建一个新的。

     

    def func(*args):    #在形参位置*叫做聚合

        print(args)     #元组形式

     

    func(1,2,3,4,5,6)

     

    def func(**kwargs):  # 动态关键字参数

        print(kwargs)

     

     

    func(a=1, b=2, c=3)  # 关键字的形式传参

  • 相关阅读:
    软件工程—附加作业
    软件工程最终总结
    电梯调度(两人结对)
    VS单元测试
    第二周作业(2,3题)
    VS的安装
    补救
    漂亮男孩不说谎
    博客带我成长
    Java后缀数组-求sa数组
  • 原文地址:https://www.cnblogs.com/1oo88/p/10530627.html
Copyright © 2011-2022 走看看