Python中文
首页
教程
问答
标签
搜索
登录
注册
课堂上的装饰师
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>有没有办法在嵌套良好的类结构中编写装饰器?例如,如果不使用类,则可以正常工作:</p> <pre><code>def wrap1(func): def loc(*args,**kwargs): print 1 return func(*args,**kwargs) return loc def wrap2(func): def loc(*args,**kwargs): print 2 return func(*args,**kwargs) return loc def wrap3(func): def loc(*args,**kwargs): print 3 return func(*args,**kwargs) return loc def merger(func): return wrap1(wrap2(wrap3(func))) @merger def merged(): print "merged" @wrap1 @wrap2 @wrap3 def individually_wrapped(): print "individually wrapped" merged() individually_wrapped() </code></pre> <p>输出为:</p> ^{pr2}$ <p>这就是我想要的。但是现在让我们假设我想将<code>merged</code>和{<cd2>}作为静态或类方法。只要decorator不在类名称空间中,这也会起作用。有什么好方法可以把装饰器放在命名空间中吗?我不想列举所有不起作用的方法,但主要问题是如果<code>merger</code>是一个方法,它就不能访问{<cd4>}方法。也许这是一件很愚蠢的事情,但是有没有人在同一个类中使用了所有的decorator和decorated方法?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>“有没有什么好方法可以将decorator放入命名空间?”在</p> <p>没有令人信服的理由。你有模块文件。对于一个类和一些装饰人员来说,这是一个整洁的容器。在</p> <p>你永远不需要装饰器作为类的方法,你只需要从另一个方法调用一个方法。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
在python3中使用Scipy pearsonr函数
7 回答
在Python3中使用scipy对多个lorentzian进行数据拟合
10 回答
在Python3中使用Script=argv
2 回答
在python3中使用selenium webdriver进行未解析的回溯
1 回答
在python3中使用selenium和phantomjs的网页截图之前如何等待?
4 回答
在Python3中使用Selenium和Requests模块从网页获取文件
3 回答
在python3中使用SIGINT终止函数
7 回答
在Python3中使用SIGTERM时,允许进程完成而不是中断
5 回答
在python3中使用smtplib发送XML内容
7 回答
在python3中使用socket库(RFCOMM模式)重新连接蓝牙设备?
5 回答
在python3中使用sounddevice和numpy编写wav文件
6 回答
在python3中使用Sqlalchemy插入MySQL查找类型错误的原因
1 回答
在python3中使用sqlite、pandas和sqlalchemy很难让rollback工作
5 回答
在python3中使用SQLite的FTS3/4
3 回答
在Python3中使用struct.calcsize()和len()有区别吗?
4 回答
在python3中使用substring函数时发生TypeError
7 回答
在Python3中使用Tkinter entry小部件写入串行设备
4 回答
在python3中使用tkinter时,如何在每次按下函数时获得运行该函数的按钮?
10 回答
在python3中使用tkinter的子帧
5 回答
在Python3中使用tryexcept块时,如何避免使用未初始化的变量?
6 回答