import functools def log(args): if callable(args): #检查传入的参数是否为func func = args @functools.wraps(func) def decorator(): print("不带参调用:{}".format(func.__name__)) return func() return decorator else: def para_log(msg): def decorator2(func2): @functools.wraps(func2) def wrap(): print(msg) return func2() return wrap return decorator2 return para_log(args) @log def my_func(): print("自定义函数") print(my_func.__name__) my_func() @log("带参数调用") def my_func2(): print("自定义函数2") print(my_func2.__name__) my_func2()
我感觉老师应该出题就是这个意思,你实现的蛮好的
多亏了有你们这些高手在这里讨论,我们这些小白才知道 callable()函数的用法,谢谢!
Sign in to make a reply
黑猫警长的秋天