Python 之 函数/函数参数/参数解构 的深入浅出
1、函数概念
1.1 数学定义
- y = f(x)
- y 是 x 的函数, x 是自变量
- y = f(x0, x1……xn)
1.2 Python 函数
- 由若干语句组成的语句块、函数名称、参数列表构成
- 函数是组织代码的最小单元
- 函数能够完成一定的功能
1.3 函数的作用
- 结构化编程对代码的最基本的封装,一般按照功能组织一段代码
- 封装的目的是为了复用,减少冗余代码
- 代码更加简洁美观,可读易懂
2、Python 函数的定义及调用
2.1 函数定义
def 函数名(参数列表):
函数体(代码块)
[return 返回值]
- 函数名就是标识符,命名要求一样
- 语句块必须缩进,约定4个空格
- Python 的函数若没有 return 语句,会隐式返回一个 None 值
- 定义中的的参数列表成为形式参数,只是一种符号表达(标识符),简称 形参
2.2 函数调用
- 函数定义,只是声明了一个函数,它不能被执行,需要调用执行
- 调用的方式,就是函数名后加上小括号,如果有必要在括号内写上参数
- 调用时写的参数是实际参数,是实实在在传入的值,简称实参
2.3 函数示例及代码解释
def add(x, y): # 函数定义,创建一个标识符 add 指向 函数对象
result = x + y # 函数体
return result # 返回值
out = add(4, 5) # 函数调用,可能有返回值,使用变量接收这个返回值
print(out) ## print函数加上括号也是调用
9
上面代码解释:
-
定义一个函数 add,及函数名是 add,接受两个参数
-
该函数计算的结果,通过返回值返回,需要 return 语句
-
调用时,通过函数名 add 后加 2 个参数,返回值可使用变量接收
-
函数名也是标识符,返回值也是值
-
定义需要在调用前,也就是说调用时,已经被定义过了,否则会有 NameError 异常
-
函数是 可调用的对象, callable()
Signature: callable(obj, /) Docstring: Return whether the object is callable (i.e., some kind of function). Note that classes are callable, as are instances of classes with a __call__() method. Type: builtin_function_or_method
print(callable(add)) callable(add1)
True --------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-6-f9248a1bfb76> in <module> 1 print(callable(add)) ----> 2 callable(add1) NameError: name 'add1' is not defined
callable(add), callable(1), callable('2') (True, False, False)
2.4 函数返回值说明
- Python 函数使用 return 语句返回 “返回值”
- 所有函数都有返回值,如果没有 return 语句,隐式调用 return None
- return 语句并不一定是函数的语句块的最后一条语句
- 一个函数可以存在多个 return 语句,但是只有一条可以被执行,如果没有一条 return 语句被执行到,则隐式调用 return None
def fn(x):
for i in range(x):
if i > 3:
return i
else:
print('{} is greater than 3'.format(x))
print('First >>> ', fn(5))
print('Second >>> ', fn(3))
First >>> 4
3 is greater than 3
Second >>> None
-
如果有必要,可以显示调用 return None,可以简写为 return
-
如果函数执行了 return 语句,函数就会被返回,当前执行的 return 语句之后的其它语句就不会被执行了
-
返回值的作用:结束函数调用,返回 ‘返回值’
-
函数不能返回多个值,如果有多个值时,隐式的被 Python 封装成了 一个元组
def showconfigs(): return