*args, **kwargs函数传递多个参数
# 写一个装饰器,玩两个游戏,其中两个游戏,一个两个参数, 一个有多个参数。 def guanjia(game): # 函数作为参数进行传递时,不需要执行。只要函数名即可如果执行了就是值在传递。 # 这里的*, **表示接收所有的参数, 打包成元组和字典 def inner(*args, **kwargs): # 其中*args就是一个元组, **kwargs就是一个字典。他是关键字参数,字典有键和值组成[] print("打开外挂,准备开始") # 这里的*, **表示把这里的元组和字典大散成位置参数以及关键字参数, 这里的参数集合可以不要字典参数代表 game(*args, **kwargs) print("游戏结束,关闭外挂") return inner @guanjia def play_dnf(username, password): print("开心的玩dnf", "\n\n", "用户名:", username, "密码是:", password, '\n') @guanjia def play_lol(username, password1, hero): print("开心的玩lol", username, password1, hero) play_dnf('admin', 'add') play_lol('admin', 'add', '后裔') # 列表, 有序可更改的集合,表示方式[] # 元组, 有序不可更改的集合, 表示方式() # 字典, 是一个无序, 可变,有索引的集合{} # 集合,是一个无序,不可更改的集合{}