Python类中装饰器使用与定义具体怎么操作,python装饰,是这样的,我封装了一个类
Python类中装饰器使用与定义具体怎么操作,python装饰,是这样的,我封装了一个类
是这样的,我封装了一个类,然后许多类中的方法要加一些相同的功能(这些功能都是基于这个类的),我知道装饰器能简化这个过程,但google了许多,没有发现在类中如何实现装饰器.
比如:
class Test(object): self.i = 1 def fun(self): print 'hehe'
我想要在一些方法前加入特定改变self.i的方法并把参数传进去,类似这样:
def decorator(self, args): def _deco(func): def __deco(): self.i = args func() return __deco return _deco@decorator(self, args)def fun(self): print 'hehe'
这样我就可以把self.i改成args了.但是在类中这种方法不管用~
所以问题来了:
类中可不可以使用并定义装饰器,如何使用?如果不能使用可以用什么方法代替?非常感谢
看着问题有点绕,肯定是能做到的。
我理解题主大概是想要这样的效果:
class Foo(object): @decorator(123) def bar(self): # 输出 123 print('i:', self.i)def decorator(args): def _deco(func): def _func(self): # 注意 self 是作为参数传进来的 self.i = args func(self) return _func return _deco
编橙之家文章,
相关内容
- baidu云功能中有上传文件的接口吗?,baidu上传文件,初学
- 子字符串所在位置要怎么标记,有什么自带方法吗?,
- Python flup现在还在用吗?有什么替代,pythonflup,弱弱问问
- python异常的问题有代码求指教,关于raise语句,pythonrai
- Python urllib2读取网页打不开报urllib2.URLError错误,,使用
- 应该如何用matplotlib设置生成图片比例,,为了去除图片
- 测试数据库链接的API本地测试正常,链接服务器就报
- Python fetchall方法获取tuple转到form表单逐条显示如何实现
- Django User类应用求高手赐教,djangouser,我最近在看一个
- 问Flask表单提交按钮时出错怎么解决?,flask表单,一组
评论关闭