-
关键词:Python函数
-
摘要:Python函数、Python函数的特点、Python函数与C语言函数的异同
目录
一、Python函数文档
在函数定义时,独立成行用单引号扩住,作为函数的注释或说明。
可通过 .__doc__ 或 help() 函数直接进行查看。
>>> def plus(num1, num2):
'plus函数将两个参数相加,返回其和'
return (num1 + num2)
>>> plus.__doc__
'plus函数将两个参数相加,返回其和'
>>> help(plus)
Help on function plus in module __main__:
plus(num1, num2)
plus函数将两个参数相加,返回其和
二、函数参数
1、关键字参数
在调用参数时,若在实参使用关键字,则Python会根据关键字进行映射,而不会通过顺序进行映射。
>>> def show(name, age):
print(name + " is " + str(age))
>>> show(name = "Tom", age = 18)
Tom is 18
2、默认参数
在定义函数时,可为形参设定默认值。
*若设置默认参数,则调用函数时最好使用关键字参数
>>> def plus(num1=0, num2=0):
return(num1 + num2)
>>> plus()
0
>>> plus(num2 = 2)
2
3、收集参数
定义函数时,若无法确定参数具体个数,可使用 *params 作为收集参数。
调用函数时,实参将会被打包为元组,可用元组方法调用参数。
*若除收集参数外,函数还有特定参数,则在调用时一定使用关键字参数
>>> def total(*params):
result = 0
for item in params:
result += item
return result
>>> total(1, 3, 5)
9
>>> total(12, -2, 10)
20
4、返回多个值
将返回值设置为列表或元组,可一次性返回多个值
>>> def judge(name, cores):
if cores >= 60:
result = True
else:
result = False
return name, cores, result ##返回值将会是元组形式
>>> judge(name = "Tom", cores = 81)
('Tom', 81, True)
5、局部变量与全局变量
- 函数内部的定义的变量为局部变量,无法在函数外进行访问
- 函数外部的定义的变量为全局变量,可在函数内部进行访问,但无法在函数内部进行修改。
- 若试图在函数内部修改全局变量,则函数内部会生成一个与其重名的局部变量,造成逻辑错误。
>>> a = b = 100
>>> def f():
b = 50
print("a = " + str(a))
print("b = " + str(b))
>>> f()
a = 100
b = 50
##全局变量b并未被修改
>>> print("b = " + str(b))
b = 100
- 使用global关键字可以在函数内部修改全局变量的值
>>> a = 100
>>> def f():
global a
a += 1
print(a)
>>> f()
101
*闭包:若内部函数对外部函数的变量(非全局变量)进行引用,则内部函数被称为闭包
>>> def f():
a = 100
def g():
a += 1
return a
return g
>>> i = f()
>>> type(i)
<class 'function'>
三、匿名函数:lambda表达式
lambda 参数 : 返回值
-
对于某些简单的、抽象的、调用次数很少的函数,使用lambda语句可以避免给函数命名
-
使代码更加简洁,提高代码可读性,无需再到文件开头寻找def
>>> g = lambda x, y : x + y
>>> type(g)
<class 'function'>
>>> g(1, 3)
4