zoukankan      html  css  js  c++  java
  • python 函数进阶

    形参角度:

    • 万能参数:

      • 动态接收位置参数:*args
      • ​ **动态接收关键字参数:**kwargs **
    • *的魔性用法:

      • 函数定义时 ,*代表聚合。他将所有的位置参数 聚合成一个元组,赋值给了args;
      • 函数定义时: **将所有的关键字参数聚合成一个字典中,将这个字典赋给了 kwargs;
      • *和 **在函数的调用时 *代表打散
    • 仅限关键字参数:

      # def func(a,b,*args,sex='男',c,**kwargs):
      #     print(a,b)
      # func(1,2,3,4,sex='女',c='仅限关键字参数')
      
    • 形参的最终顺序:

      • 所有形参的顺序为:**位置参数, *args, 默认参数,仅限关键字参数, ****kwargs。
    • 名称空间:

      ​ Python分为三个空间:

      ​ 内置名称空间、(builtings.py文件)

      ​ 全局名称空间、(当前py文件)

      ​ 局部名称空间 (函数执行时才开辟空间)

    • 全局名称空间 局部名称空间(临时命名空间)

    • 内置命名空间:Python 源码给提供的一些内置函数 print input

      全局名称空间:存放的是yp文件里(除去函数和类内部的)的变量,函数名与函 数的内存地址的关系

      局部名称空间:存放的是函数内部的变量与值的对应关系

    • 加载顺序,

      ​ 内置名称空间-------》全局名称空间-------》局部名称空间 (执行函数时)

      取值顺序:(就近原则) 单向不可逆 LEGB

      ​ (从局部找变量)局部名称空间 ----->全局名称空间----->内置名称空间

      局部作用域 不能 改变 全局作用域的 全局变量,当Python解释器读取到局部作用域时发现了对一个变量进行自改的操作,解释器会认为你在局部已经定义过这个局部变量了,他就从局部作用域找这个局部变量,报错了

    • 作用域:两个作用域:

      ​ 全局作用域:内置名称空间与全局名称空间,不能获取局部作用域中的变量

      ​ 局部作用域:局部名称空间 ,可以从全局作用域中获取变量,

    LEGB ==就近原则
    • 函数的嵌套(高阶函数)

    • 内置函数:

    	# glbals()   返回的是字典:字典里面的键值对:全局作用域的所有内容。
    	# locals()   返回的是字典:字典里面的键值对:当前作用域的所有的内容。
    

    总结:

    1、参数 :万能参数 仅限关键字参数 *的魔性用法(聚合 打散),参数的顺序

    2、名称空间 作用域 取值顺序 加载顺序

    3、glbals() locals()

    4、高阶函数

    • # 函数以功能(完成一件事)为导向,登录 注册,
      # 一个函数就是一个功能,一个函数只能写一个功能
      # 何时需要 何时调用,随调随用
      
      # ****函数的优点:
      # 1 减少代码的重复;
      # 2 增强代码可读性。
      
    '''
    结构:
    def    关键字,定义函数
    meet   函数名,与变量名设置相同,具有可描述性
    函数体  函数体要缩进,函数中尽量不要出现print
    
    # 函数什么时候执行?
    # 当函数遇到 ****** 函数名()*****  函数才会执行
    #  meet()遇到几次就执行几次
    '''
    
    '''
    # return 总结:
    1、在函数中 终止函数
    2、return 可以给函数的执行者返回值:
        1、单个值    单个值
        2、多个值    元组(多个值,多个值) ('函数值', 123, [22, 22]) <class 'tuple'>
    '''
    
    '''
    # 实参角度:
    1、位置参数。:从左至右一一对应
    2、关键字参数。:一一对应,不用从左至右
    3、混合参数。:位置参数一定要在关键字参数前边
    '''
    
    # 形参角度:
    # 1、位置参数。:从左至右一一对应
    # 2、默认值参数。  设置的意义:普遍经常使用的
    # 3、仅限关键字参数
    # 4、万能参数
    
  • 相关阅读:
    java作业5
    《大道至简》第五章读后感
    java作业4
    《大道至简》第四章读后感
    java作业3
    《大道至简》第三章读后感
    java作业2
    Java课程作业1
    《大道至简》第二章读后感
    《大道至简》第一章读后感
  • 原文地址:https://www.cnblogs.com/an-wen/p/10878219.html
Copyright © 2011-2022 走看看