Python中文
首页
教程
问答
标签
搜索
登录
注册
有没有一种方法能够将装饰器应用到Python数据结构上?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>到目前为止,decorator应用于可调用函数(函数和类)。 想知道是否有一种方法可以将装饰器应用到词典中?(事实上,它可以是任何数据结构)。 我试图解决的问题大致如下: 我有很多字典,有时可能有效或无效。你知道吗</p> <p>我想用一个<em>装饰器来标记它们,比如</em>,如下图所示…:</p> <pre><code>class Data(object): def invalide(self): return False def valide(self, some_dict): return some_dict @Data.invalide dict_1 = {...} @Data.valide dict_2 = {...} @Data.valide dict_3 = {...} ... ... @Data.invalide dict_n = {...} </code></pre> <p>…所以,当我调用<code>some_function(dict_x)</code>时,它会知道根据<code>valide</code>,<code>invalide</code>标记做一件事或另一件事。你知道吗</p> <h2>-------------以后--------------------</h2> <p>我最终实现了以下目标:</p> <pre><code>In [2]: class Data(object): ...: ...: @classmethod ...: def valide(self, func): ...: #print "Data is valide." ...: return func() ...: ...: @classmethod ...: def invalide(self, func): ...: #print "Data is invalide." ...: return False ...: In [3]: @Data.valide ...: def dict1(): ...: return {"a": 1, "b": 2, "c": 3} ...: ...: @Data.invalide ...: def dict2(): ...: return {"d": 4, "e": 4, "f": 6} ...: ...: def run_funct(some_dict): ...: return some_dict ...: In [4]: print(run_funct(dict1)) ...: print type(run_funct(dict1)) ...: {'a': 1, 'c': 3, 'b': 2} <type 'dict'> In [5]: print(run_funct(dict2)) ...: print type(run_funct(dict2)) ...: False <type 'bool'> </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>据我所知,装饰器只能应用于可调用(函数、类等)</p> <p>如果我在你的位置上,我可能会分离逻辑,在它自己的函数中决定有效/无效。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在python中从数据帧列中删除分类值?
4 回答
如何在python中从数据帧列表中删除引号
1 回答
如何在python中从数据帧创建列表
3 回答
如何在Python中从数据帧创建嵌套的JSON
1 回答
如何在Python中从数据帧显示wordcloud
4 回答
如何在Python中从数据帧的时间戳中删除字符
3 回答
如何在Python中从数据帧绘制简单绘图?
7 回答
如何在python中从数据帧行提取具有特定长度的范围?
5 回答
如何在python中从数据帧设置dict中的值
9 回答
如何在Python中从数据库中获得一个结果
10 回答
如何在python中从数据框中绘制分类条形图
6 回答
如何在Python中从数据框中选择特定细节?
3 回答
如何在python中从数据集中删除unicode
8 回答
如何在python中从数据集中删除某些数值?
8 回答
如何在python中从数据集中选择行
2 回答
如何在Python中从数组中删除元素
2 回答
如何在python中从数组中删除单个倒逗号?
1 回答
如何在python中从数组中删除对象?
2 回答
如何在python中从数组中删除引号
5 回答
如何在python中从数组中删除所有最小值
6 回答