# 写一个装饰器,玩两个游戏,其中两个游戏,一个两个参数, 一个有多个参数。
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', '后裔')
# 列表, 有序可更改的集合,表示方式[]
# 元组, 有序不可更改的集合, 表示方式()
# 字典, 是一个无序, 可变,有索引的集合{}
# 集合,是一个无序,不可更改的集合{}