# -*- coding: utf-8 -*- # author:baoshan # 带参数的函数装饰器 def say_hello(country): def wrapper(func): def deco(*args, **kwargs): if country == 'china': print('你好!') elif country == 'america': print('hello') else: return func(*args, **kwargs) return deco return wrapper @say_hello('china') def chinese(): print('我来自中国。') @say_hello('america') def america(): print('I am from America.') america() print('-'*20) chinese()
输出结果:
hello I am from America. -------------------- 你好! 我来自中国。
带参数的函数装饰器