python常用的装饰器

2018-08-18  本文已影响0人  高稚商de菌

Python中有很多装饰器(decorator),可以减少冗余代码。Decorator本质上也是函数,只是它的参数也是函数。这里记录一下常用的decorator,方便以后查找。

class A(object):
    a = 1
    def __init__(self):
        self.a = 2

    @staticmethod
    def foo1():
        print A.a

    @classmethod
    def foo2(cls):
        print "class a is", cls.a
        print "instance a is", cls().a


A.foo1()
A.foo2()
class A(object):
    def __init__(self):
        self.__count = 0

    @property
    def count(self):
        return self.__count

    @count.setter
    def count(self, value):
        if not isinstance(value, int):
            raise ValueError('count must be an integer!')
        self.__count = value


a = A()
print a.count
a.count = 1
print a.count
a.count = "a" # raise ValueError
import functools

def log(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print '%s %s():' % (text, func.__name__)
            return func(*args, **kw)
        return wrapper
    return decorator

待后续补充。。。

上一篇 下一篇

猜你喜欢

热点阅读