动态传参
def chi(zhushi, cai, fushi, tang, tiandian): print(zhushi,cai,fushi,tang,tiandian) chi("大碗大米饭", "火爆大头菜", "把子肉", "西红柿鸡蛋汤", "烤地瓜") chi("小碗大米饭", "火爆大头菜") # 参数不够 形参的顺序(重点): 位置 *args 默认值 **kwargs 以后写参数. 可以随意的进行搭配, 但是, 顺序不能串 * 在形参位置. * 表示不定参数-接收的是位置参数 接收到的位置参数的动态传参: 都是元组 def chi(*food): # 在形参这里把传递过来的实参进行了聚合,聚合成了元组 print(food) chi("小米粥") chi("小米粥", "咸鸭蛋") chi("爆米花", "咸鸭蛋", "辣白菜") chi("小米粥", "爆米花", "咸鸭蛋", "蒜茄子") def func(*args, a, b, c): print(a, b , c, args) func(1,2,3,4,5,6,7, a=8, b=9,c=10) **在形参表示动态传参-关键字参数 关键字动态传参接收到的是字典 def func(**kwargs): # 也是聚合. ** 聚合成字典 print(kwargs) # func(1,2,3,4,5,6,7) # 位置参数. 报错 func(a=1, b=2, c=3, haha="呵呵", good="not bad") def func(**kwargs, gender="男"): print(gender, kwargs) func(a=5,b=3,c=6, gender="女") # 无敌传参 def func(*args, **kwargs): # 参数没有限制. 随便传递 print(args) print(kwargs) func(1,2,3,4, a=3,b=5) # 这里是形参 # * 聚合 def chi(*food): print(food) lst = ["胡萝卜", "大白菜", "大萝卜", "草", "果冻"] # for el in lst: # chi(el) # # chi(lst[0], lst[1], lst[2], lst[3], lst[4]) # 这里是实参 # * 打散 chi(*"你今天吃了些什么") # * 打散. 把列表, 元组, 字符串打散成位置参数进行传递 chi("胡萝卜", "大白菜", "大萝卜", "草", "果冻") def chi(**food): # 聚合, 聚合成字典 print(food) dic = {"主食":'面条', "副食":"土豆泥", "汤":"疙瘩汤"} dic1 = {} chi(**dic, 甜点="冰激凌") # 打散. 打散成关键字 chi(主食="面条", 副食="土豆泥", 汤="疙瘩汤", 甜点="冰激凌") 形参: *->元组, **->字典 表示聚合 实参: *->列表,字符串,元组, **->字典 表示打散