Python公开课 - 详解函数
前言
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。对于代码开发人员来说,函数编程的基础。
函数的要素
对于一个函数来说,需要包含以下几个要素:
- 函数名 - 函数的调用名称
- 入参 - 传入函数的参数
- 出参 - 传出函数的参数
- 返回结果 - 执行函数的返回值
def TestFunc(in_para, out_para):
out_para.append('出参')
return 0
out_para = []
print(TestFunc(1, out_para))
print(out_para)
示例说明:
TestFunc
: 函数名in_para
: 入参,一般不可改变,在C++ 中一般会以const来修饰,但是Python中没有提供该修饰词,这也是C++语法更严格更安全的提现out_para
: 出参,根据函数计算,可以修改。在Python中定义函数时,想利用参数输出某些处理过的变量,那必须使用可以更改的对象,如list,dict等return
: 为函数返回,可以返回一个或者多个
函数参数
位置参数
def ComputeFunc(x):
return x * x
ComputeFunc(6)
当我们调用ComputeFunc函数时,必须传入有且仅有的一个参数x
关键字参数
关键字(keyword)传递是根据每个参数的名字传递参数。关键字并不用遵守位置的对应关系。
def fun(a,b,c):
return a+b+c
print(f(1,c=3,b=2))
默认参数
def ComputeFunc(x, n=1):
return x * x
ComputeFunc(6)
默认参数可以简化函数的调用。
设置默认参数时,要注意:
- 必选参数在前,默认参数在后,否则Python的解释器会报错
建议:
- 当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。
可变参数
在某些场景下,我们可能会不知道入参会有多少个,这个时候,可变参数就上场了,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。
def func(*name):
print(type(name))
print(name)
func(1,4,6)
func(5,6,7,1,2,3)
当然还可以这样:
def func(*name):
print(type(name))
print(name)
name = [1, 4, 6]
func(*name)
可变关键字参数
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而可变关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
def func(**dict):
print(type(dict))
print(dict)
func(a=2,b=1,c=11)
当然还可以这样:
def func(**dict):
print(type(dict))
print(dict)
d = {"a":2, "b":1, "c":11}
func(**d)
输出:
<class 'dict'>
{'c': 11, 'b': 1, 'a': 2}
参数组合
def f1(a, b, c=0, *args, **kw):
print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
f1(1, 2, 3, 'a', 'b', x=86)
输出:
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 86}
函数返回 return
return 语句用于退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。
相关阅读
相关主题: