【循序渐进学Python】Python中的函数(三)——函数文档和参数
函数文档说明(doc文档)
- 函数文档指在函数开头起一定说明性的一段文字
- 解释说明代码–注释
- 解释说明函数–函数的文档说明
案例:
def func(a):
'''雷霆嘎巴
无情哈拉少
一giao我里giao
小鸟伏特加
整这高
'''
print(123)
return a
func(1)
# ctrl+q也可以查看函数文档
help(func)
# 最后输出的结果为:
# 123
# Help on function func in module __main__:
# func(a)
# 雷霆嘎巴
# 无情哈拉少
# 一giao我里giao
# 小鸟伏特加
# 整这高
参数
函数参数
作用:
- 进一步的提高了一个没有参数函数的复用性
定义格式:
形参: 形式参数(有多少个, 看需求)
def 函数名(形参1, 形参2, ...):
pass
调用格式:
实参: 实际参数(有多少个, 看形参)
函数名(实参1, 实参2, ...)
案例:
在定义函数的时候,参数还没有具体的值,它的作用是占据位置
def funFa(name): # 形参
print("我的名字是%s" % name)
# 调用函数
# 调用以后参数有了具体的值
funFa("张三") # 实参
缺省参数
概念:
如果一个函数有参数, 而且这个参数设置了默认值, 称为缺省参数
格式:
def 函数名(形参1, 形参2=数值):
pass
调用函数:
- 如果缺省参数位置没有传入,实参使用默认值
- 如果缺省参数位置传入实参,实参会把默认值修改掉
- 下次在调用该函数的时候, 缺省参数还是默认值
作用:
- 简化了函数的调用
- 如果一个函数 有缺省参数, 那么缺省参数后面必须也是缺省参数
案例:
def info(name, age=45, sex="男"):
print("我的名字是:%s,今年%d岁,性别%s!" % (name, age, sex))
info("张三")
info("张三", 78)
info("张三", 45, "女")
最后控制台输出的结果是:
我的名字是:张三,今年45岁,性别男!
我的名字是:张三,今年78岁,性别男!
我的名字是:张三,今年45岁,性别女!
不定长参数:
单星号元组形参
格式:
def func(*args):
pass
特点:
- 调用函数的时候不知道传入多少个实参
- 位置参数调用函数
- 函数内部使用下标索引获取实参的数据
单星号元组形参案例:
# 定义单星号元组参数函数
def func(*name):
print("进入星号元组函数")
print(name)
# 如果没有参数,那么就是一个空列表
func()
# 如果输入实参,函数自动把实参打包放入列表,然后传入
func("张三")
func("李四", 15)
# 输出的结果:
# 进入星号元组函数
# ()
# 进入星号元组函数
# ('张三',)
# 进入星号元组函数
# ('李四', 15)
双星号字典参数
格式:
def func(**kwargs):
pass
特点:
- 调用函数的时候不知道传入多少个实参
- 关键字参数调用函数
- 函数内部通过key获取实参的数据
双星号字典参数案例:
# 定义一个双星号字典参数函数
def func(**name):
print("进入双星号字典参数函数")
print(name)
func()
# 双星号字典参数对应的是关键字参数
func(a="张三")
func(a="李四", b=15)
# 最后输出的结果:
# # 进入双星号字典参数函数
# # {}
# # 进入双星号字典参数函数
# # {'a': '张三'}
# # 进入双星号字典参数函数
# # {'a': '李四', 'b': 15}
不定长参数说明:
- 位置形参,单星号元组形参,双星号字典形参可以混用
- 如果混合使用,则顺序必须为位置形参,星号元组形参,双星号字典参数形参,顺序不能乱