python装饰器的4中类型:函数装饰函数、函数装饰类、类装饰函数、类装饰类
2017-05-18 22:13
387 查看
一:函数装饰函数
def wrapFun(func): def inner(a, b): print('function name:', func.__name__) r = func(a, b) return r return inner @wrapFun def myadd(a, b): return a + b print(myadd(2, 3))
二:函数装饰类
def wrapClass(cls): def inner(a): print('class name:', cls.__name__) return cls(a) return inner @wrapClass class Foo(): def __init__(self, a): self.a = a def fun(self): print('self.a =', self.a) m = Foo('xiemanR') m.fun()
三:类装饰函数
class ShowFunName(): def __init__(self, func): self._func = func def __call__(self, a): print('function name:', self._func.__name__) return self._func(a) @ShowFunName def Bar(a): return a print(Bar('xiemanR'))
四:类装饰类
class ShowClassName(object): def __init__(self, cls): self._cls = cls def __call__(self, a): print('class name:', self._cls.__name__) return self._cls(a) @ShowClassName class Foobar(object): def __init__(self, a): self.value = a def fun(self): print(self.value) a = Foobar('xiemanR') a.fun()
相关文章推荐
- 利用装饰器给python的函数加上类型限制
- python装饰器:有参数的装饰器、不定长参数的装饰器、装饰有返回值的函数、通用的装饰器
- python之 装饰器(原函数有返回值,装饰器函数如何拿到原函数返回值?)
- 如何用python的装饰器定义一个像C++一样的强类型函数
- python通过装饰器检查函数参数数据类型的方法
- python装饰器:有参数的装饰器、不定长参数的装饰器、装饰有返回值的函数、通用的装饰器
- python通过装饰器检查函数参数数据类型的方法
- python_装饰器二(对有/不定长参数函数的装饰)
- 使用装饰器为Python函数做缓存
- Python对象类型判断与函数重载
- Python中函数的装饰器
- 函数名function是一个数据类型,可以赋值 分类: python基础学习 2013-09-12 11:01 366人阅读 评论(0) 收藏
- C++与Python的混合编程-调用有参函数以及C++数据类型与Python数据类型间的转换
- python 验证数据类型函数
- python用装饰器实现缓存函数执行结果
- python 元类型编程,实现匿名验证器的装饰器AuthenticationDecoratorMeta
- python 使用函数装饰器的例子
- python数据类型和3个重要函数
- python(5)函数装饰器
- 【转】python 装饰器功能以及函数参数使用