Python装饰器简单练习02

    科技2025-06-14  25

    1.装饰器和闭包类似,传递函数引用的同时可以传递参数 

    2.值得注意的是,装饰器返回test时的(*args,**kwargs)是拆包而不是打包

    from time import * # 带参数的通用装饰器 def gen(gender): def set_func(test): def call_func(*args, **kwargs): if gender == 'girl': print('You Create a Gril Player') else: print('You Create a Boy Player') print('1.正在传送......') sleep(0.5) print('2.正在加载场景......') sleep(0.5) print('3.正在生成模型......') sleep(0.5) print('4.欢迎......') for i in range(6): print('.', end='') sleep(0.5) print('') # 此处是拆包 return test(*args, **kwargs) return call_func return set_func @gen(gender='girl') def test(name): print('你创建的名字是:', name) return '你将扮演:三叶' @gen(gender='boy') def test2(name): print('你创建的名字是:', name) return '你将扮演:泷' def main(): name = str(input('请输入要创建的角色名:')) while True: g = str(input('输入数字选择性别:1.男 2.女')) if g == '1': role = test2(name) print(role) break elif g == '2': role = test(name) print(role) break else: print() print('请选择正确的性别,男/女!!!!!!') sleep(0.5) continue if __name__ == '__main__': main()

     

    Processed: 0.014, SQL: 8