初识函数
函数的概念
wiki百科中解释:函数是一个大型程序中的某部分代码,由一个或多个语句块组成。它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏。
简而言之,函数就是具有输入参数、输出参数的,并且可以独立完成特定功能的程序代码。
函数与方法的区别
函数
- 通过
函数名()
的方式调用
方法
- 通过
类的实例.方法名()
的方式调用
判断函数or方法
1 | #!/usr/bin/python |
命名空间
wiki百科中的解释:它表示着一个标识符的可见范围。
简而言之,命名空间就是对象或变量的作用范围。
python中的命名空间:内置命名空间、全局命名空间、局部命名空间
- 内置命名空间: python编译器启动时就可以使用的名字存在内置命名空间中
- 全局命名空间: 除函数外的代码部分
- 局部命名空间: 函数内部的代码部分
作用域
wiki百科中解释:作用域是名字(name)与实体(entity)的绑定保持有效的那部分计算机程序。
简而言之,作用域就是变量有效的代码区域。
python中的作用域分为:全局变量作用域、局部变量作用域
- 全局变量作用域:是整个代码范围。
- 局部变量作用域:是定义该变量的子程序的代码范围。
- 同名变量在全局和局部变量作用域如何划分:在局部变量作用域代码范围内,局部变量起作用;在其他地方全局变量起作用。
参数
参数的概念
参数可以理解为函数的输入值。
参数的种类
- 形参的角度(函数定义阶段)
1 | # 位置参数:必须传,且有多少就必须传多少 |
- 实参的角度(函数调用阶段)
1 | # 按位置传参 |
多种参数混合的顺序
- 位置参数 -> *args -> 默认参数 -> **kwargs
动态参数的另一个传参方式
- 站在形参的角度上,给变量加上*,就是组合所有传来的值。
- 站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
默认参数的陷阱
- 默认参数是可变数据类型
1 | #!/usr/bin/python |
返回值
返回值的概念
返回值可以理解为函数的输出值。
返回值的种类
- 没有返回值,默认返回None
- 只有return:结束一个函数的继续
- 没有return
- return None:不常用
- 一个返回值
- 可以返回任何数据类型
- 只要返回就可以接收到
- 如果在一个函数中有多个return,只返回第一个
- 多个返回值
- 用多个变量接收:有多少返回值就要有多少变量接收
- 用一个变量接收:接收到的是一个元组