函数装饰一个类

时间:2017-03-22 01:59:34

标签: python decorator

昨天我碰巧看了下面的代码(我无法保证这是一个有效的代码):

def singleton(cls, *args, **kw):
    instances = {}
    def getinstance():
        if cls not in instances:
            instances[cls] = cls(*args, **kw)
        return instances[cls]
    return getinstance

@singleton
class MyClass:
  ...

看起来函数singleton旨在装饰类MyClass。我理解简单和标准的装饰器,它作为一个函数,装饰一个函数。像这样:

def bold(func):
    def wrapper():
        return '<b>'+func()+'</b>'
    return wrapper

@bold
def test():
    return 'This is a test'

但我无法真正了解函数装饰类的工作原理。任何人都可以提供更详细的例子吗?

0 个答案:

没有答案