python装饰器使用

35 阅读1分钟
# 主要练习给装饰器传参

def get_choice_text(title, field):

    def inner(self, obj=None, is_header=None):
        if is_header:
            return title
        method = "get_%s_method" % field
        return getattr(obj, method)()

    return inner

class Example:
    def __init__(self,name):
        self.name = name

    def get_fff_method(self):
        return self.name

if __name__ == '__main__':
    a = Example("haode")
    # 获取装饰器对象
    bb = get_choice_text("zxc","fff")
    # 给装饰器对象传参
    print(bb("中",a,"fff")) > zxc
    print(bb(None,a,False)) > haode