https://www.bilibili.com/video/BV1k7411W78H
# 1.位置参数
def calc(a, b, c):
print(a + b * c)
calc(1, 2, 3)
# 2.关键字参数,如果使用上面的位置参数进行传值,一个函数入参定义了十多个,位置很容易搞混
# 使用关键词进行传输,就是传入的标识 = 传入的数据
def calc(a, b, c):
print(a + b * c)
calc(b=1, a=2, c=3)
# 3.关键字参数和位置参数混搭,必须 先位置,后关键字
def sum(a, b, c):
print(a + b * c)
sum(1, b=2, c=3)
# 4.函数入参,强制关键字参数传值
# 函数入参前面加入 * 号标识,强制调用函数时入参必须为关键字参数传值
def add(*, a, b, c):
print(a + b + c)
add(b=1, a=2, c=3)
# 5.默认参数
# 默认参数在函数定义时定义好,调用函数时,可以传,可以不传
def addm(a, b, c=0):
print(a + b + c)
addm(1, 2)
addm(1, 2, 3)
# 6.可变参数(位置),先固定参数,再可变参数
# 可变参数(位置),加入一个星号 *,进行标识
def sayhello(msg, *names):
print('hello', names, msg)
# 在函数内部使用时,可变参数前加入星号,表示开包
print('hello', *names, msg)
# 调用的时候,name可以传多个数值,传入之后,会被合并为一个元祖(键值对)
sayhello('新年好', '丽华', '汤姆')
# 7.可变参数(关键词),先固定参数,再可变参数
# 如果在函数定义时,参数加入两个星号,代表可变关键词参数
def hello(msg, **names):
# 可变参数(关键词)在使用的时候,需要使用 元祖 键值对的方式输出数值
print('老大是:', names['boss'], msg)
print('老二是:', names['boss2'], msg)
# 函数调用时,给可变参数(关键词)传值的时候,需要用键值对传值
hello('新年好', boss='大老板', boss2='二老板', boss3='三老板')
#10函数调用 -开包列表 和 元祖 ,加入一个星号 *,标识打开一个列表和元祖
# 可变参数(位置),加入一个星号 *,进行标识
def sayhai(msg = '默认的信息', *names):
print('hello', names, msg)
# 在函数内部使用时,可变参数前加入星号,表示开包
print('hello', *names, msg)
# 调用的时候,name可以传多个数值,传入之后,会被合并为一个元祖(键值对)
data = ('新年好', '丽华', '汤姆')
data1 = ['你好',]
sayhai('这是msg',*data)
sayhai(*data1)
#11.函数调用 -开包 字典 ,加入一个星号 **,标识打开一个字典
# 如果在函数定义时,参数加入两个星号,代表可变关键词参数
def hello(msg, **names):
# 可变参数(关键词)在使用的时候,需要使用 元祖 键值对的方式输出数值
print('老大是:', names['boss'], msg)
print('老二是:', names['boss2'], msg)
# 函数调用时,给可变参数(关键词)传值的时候,需要用键值对传值
data = {'boss':'大老板', 'boss2':'二老板', 'boss3':'三老板'}
#函数调用 -开包 字典 ,加入一个星号 **,标识打开一个字典
hello('这里是msg',**data)