Python函数

2019-05-28

函数总结:
  在一个完整的项目中,某些功能会反复使用。那么会将功能封装成函数,当我们要使用这个功能的时候直接调用这个函数即可。

1、本质:函数就是对功能的封装
2、优点
  1、简化代码结构,增加了代码的复用度(重复使用的程度)
  2、如果想修改某些功能或者修改某个BUG,修改函数的对应的错误即可
3、定义函数
  def 函数名(参数1,参数2,参数n):
    语句
    return 表达式

  def:函数代码块以def关键字开始
  函数名:遵循标识符规则

  ():是参数列表的开始与结束
  参数列表(参数1,参数2,......,参数n):任何传入函数的参数和变量必须放在圆括号之间,用逗号分隔。函数从函数的调用者哪里获取的信息

  冒号:函数内容(封装的功能)以冒号开始,并且要缩进

  语句:函数封装的功能

  return:一般用于结束函数,并返回信息给函数的调用者,

  表达式:即为要返回给函数的调用者的信息

  注意:最后的return 语句表达式,可以不写,相当于return None

传递参数:
1、值传递
  传递的是不可变类型(string,tuple,number不可变的)

2、引用传递
  传递的是可变类型(list,dict,set是可变的)

  关键字参数
    允许函数调用时参数的顺序与定义时不一致
  使用关键字参数

  默认参数
    调用函数时,如果没有传递参数,则使用默认参数。
  以后要用默认参数,最好将参数放到最后。

  不定长参数
    能处理比定义时更多的参数

    def func(name,*arr)://arr可以随便写 print(name) for x in arr: print(x) func("sunck","good","nice","handsom")
    加了*arr的变量存放所有未命名的变量参数,如果在函数调用时没有指定参数,他就是一个空元组
    **代表键值对的参数字典,和*所代表的意义类似

函数种类:

1、匿名函数
  不使用def这样的语句定义函数,使用lambda来创建函数
  特点 :
    1.lambda只是一个表达式,函数体比def简单
    2、lambda主体是一个表达式,而不是代码块,仅仅只能在lambda表达式中封装简单的逻辑
    3、lambda函数有自己的命名空间,且不能访问自由参数列表之外的或全局命名空间里的参数
    4、虽然lambda是一个表达式且看起来只能写一行,与C和C++内联函数不同,
  格式:
    lambda参数1,参数2,...参数n:expression

    sum=lambda num1,num2:num1+num2
    print(sum(1,2))

2、偏函数
  使用base进制
  把一个参数给固定住,形成一个新的函数
  引入import functools模块,例如下面:
  int3=functools.partial(int,base=2)   print(int3("111"))

  变量的作用域
  变量可以使用的范围
  程序的变量并不是在所有位置都能使用,访问的权限决定于变量的在哪里赋值的

 

posted @ 2019-05-28 15:24  旧情有余温  阅读(100)  评论(0编辑  收藏  举报