python之函数一

  1. 定义了之后,可以在任何需要他的地方调用
  2. return 返回值,后面内容不再执行,结束一个函数
  3. 返回一个值:可以返回任何数据类型
  4. 只要返回就可以接受到
  5. 返回多个值:多个变量去接收,一一对应
  6. 一个变量也可以接收,元组
  7. 站在形参的角度上
    1. - 位置形参:必须传,且有几个参数就传几个值
    2. - 默认参数:可以不传,如果不传就是用默认的参数,如果传了就用传的
  8. 只有调用函数的时候
    1. - 按位置传:直接写参数值
    2. - 按关键字:关键字=值
  9. 定义函数的时候
    1. - 位置参数:直接定义参数
    2. - 默认参数:关键字参数:关键名=‘默认值’
    3. - 传参可以按位置传,按关键字传
  10. 动态参数(一),可以接受任意个参数
    1. - (*args)接受的是按位置传参的值,传入不同数量的参数,组织成一个元素
    2. - (**kwargs)接受的是按关键字传参的值,传入不同数量的关键字参数,组织成一个字典
    3. - args必须在kwargs之前
  11. 顺序:位置参数,*args,默认参数,**kwargs
  12. 动态传参(二)
    1.  l=[]
    2.  fun(*l)站在实参的角度上,给每一个序列加上*,就是将这个序列按照顺序打散
    3.  (*args)站在形参的角度上,给变量加上*,就是组合所有传来的值。
  13. 默认参数的陷阱:
    1. 1 def qqxing(k,l = {}):
      2     l.append(1)
      3     l[k] = 'v'
      4     print(l)
      5 
      6 qqxing(1)     #[1]
      7 qqxing(2)     #[1,1]
      8 qqxing(3)     #[1,1,1]

       

    2. 如果默认参数的值是一个可变数据类型,那么每一次调用函数的时候,如果不传值就公用这个数据类型的资源
posted @ 2019-07-20 10:28  小克669  阅读(108)  评论(0)    收藏  举报