Python 動態傳參
阿新 • • 發佈:2018-12-07
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(主食="麵條", 副食="土豆泥", 湯="疙瘩湯", 甜點="冰激凌") # 形參: # *->元組, **->字典 表示聚合 # 實參: # *->列表,字串,元組, **->字典 表示打散