第10天 函数参数以及作用域,名称空间

day 10

  1. 形参角度

    • 万能参数

      args 接受所有的位置参数,函数定义是 :*代表契合,将所有的位置参数聚合成一个元组,赋值给了 args

      def func(*args):
      	count = 0
          for i in args:
              count += i
           return count
      func(1,2,3,4,5)   
      

      ``

    • *的魔性用法

      ** kwargs : **将所有的关键字参数聚合在一个字典中,将这个字典赋值给了kwargs

    • 仅限关键字参数

    • 形参角度的参数的顺序

      def func(位置参数,*args,关键字参数,**kwargs):
      
    • 形参角度最终的顺序:位置函数,*args,默认参数,仅限关键字参数,**kwargs

    • ,**,在函数调用时,代表打散

      def func(*args)
      	print(args)
      func(*[1,2,3],*[22,33,44])#func(1,2,3,22,33,44)
      
      def func(**kwargs)
      	print(kwargs)
      func(**{'name':'taibai'},**{'age':18})#func(name='taibai',age=18)
      
  2. 函数的名称

    • 名称空间

      全局名称空间,记录整个py文件中的变量,函数对应关系

      局部名称空间(临时名称空间),记录函数体中的变量与值对应关系,函数执行时才开辟

      内置名称空间,python源码给你提供的一些内置函数

      加载顺序:内置名称空间>全局名称空间> 局部名称空间(函数执行时)

      取值顺序:就近原则,单向不可逆,(从局部找时)局部名称空间--->全局名称空间---->内置名称空间

    • 作用域

      两个作用域:全局作用域,局部作用域

      • 全局作用域:内置名称空间,全局名称空间
      • 局部作用域:局部名称空间
      • 局部作用域不能改变全局的,只能使用父级的,不能改变
  3. 高阶函数,掌握执行顺序。

  4. globals(),local()

    globals 返回的时字典,字典里面的键值对:全局作用域的所有内存

    local返回的时字典,字典里面的键值对:当前作用域的所有内容

猜你喜欢

转载自www.cnblogs.com/printpy-1/p/12717095.html