# coding=utf-8
# 参数列表中的arg代表一个参数,这个参数可以是整数,浮点数或者是字符串
# 参数列表中的*args代表一个元组参数,适用于在定义函数的时候,并不确定参数究竟需要几个的场景
def func1(arg, *args):
print("arg:", arg)
print("args:", args)
for value in args:
print("other args:", value)
# 参数列表中的**args代表一个字典参数,字典中都有确定的键值对
def func2(**args):
print("args:", args)
for key in args.keys():
print("key:%s value:%s" % (key, args.get(key)))
def func3(arg, *tuple, **dict):
print("arg=%s" % arg)
print("tuple:", tuple)
print("dict:", dict)
for value in tuple:
print("value is %s" % value)
for key in dict.keys():
print("key:%s value:%s" % (key, dict.get(key)))
if __name__ == "__main__":
print("----------func1----------")
# 针对func1(arg,*args),第一个实参会传给arg形参,后面的实参'a',True,False,'Hello' 会以元组的形式传给*args形参
func1(1, 'a', True, False, 'Hello')
print("----------func1----------")
print("----------func2----------")
# 针对func2(**args),会把a='Apple',b='Banana',c='Cheery' 转化为一个字典传给**args形参
func2(a='Apple', b='Banana', c='Cheery')
print("----------func2----------")
print("----------func3----------")
# func3(arg,*tuple,**dict)第一个实参1会传给arg形参,2,3,4,5会以元组的形式传给*tuple形参,a=1,b=2,c=3会以字典的形式传给形参**dict
func3(1, 2, 3, 4, 5, a=1, b=2, c=3)
print("----------func3----------")
```