在python的__init__中获取decorator中的方法类名
发布时间:2020-12-20 13:26:39 所属栏目:Python 来源:网络整理
导读:我试图用一个装饰器以某种方式“注册”一个类(@classmethod)中的方法,以便以后能够轻松地调用它. 到目前为止,我已经尝试在装饰器中获取整个“命名空间”而没有结果. 我只能得到__module__但我无法得到这个方法所在的类的名称(因为我在__init__期间注册它,而
我试图用一个装饰器以某种方式“注册”一个类(@classmethod)中的方法,以便以后能够轻松地调用它.
到目前为止,我已经尝试在装饰器中获取整个“命名空间”而没有结果. 我只能得到__module__但我无法得到这个方法所在的类的名称(因为我在__init__期间注册它,而不是在我的自定义装饰器中的__call__期间). 有没有办法实现这个目标? 我认为唯一的方法是检查整个文件并以某种方式测试每个类中是否存在方法,因此也接受检查解决方案 更多信息 基本上,我正在尝试分叉django-dajaxice并修改this装饰器以便能够注册完整路径函数(与classname一致)以便从AJAX调用例如my.namespace.views.MyView.as_view(…) (我知道它更复杂,我正在努力简化) 解决方法
您可以使用类装饰器来注册您的方法:
def register_methods(cls): for name,method in cls.__dict__.items(): # register the methods you are interested in @register_methods class Foo(object): def x(self): pass 您可以将其与方法装饰器结合使用,以注释您感兴趣的方法,以便轻松识别它们. 另外你提到 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在IPython中使用Interactive Shell之外的魔术命令
- Python Flask从变量渲染文本,如render_template
- python:if row [1] .upper().find(brand)!= – 1:
- day79:luffy:注册之对手机号的验证&实现基本的注册功能
- Python中random模块生成随机数详解
- python – “statsmodels”和“sklearn”中的Logit估计器
- Flask框架响应、调度方法和蓝图操作实例分析
- Python实现处理管道的方法
- python – 整数对象标识测试:大正负整数之间的不一致行为
- python – Flask:如何获取动态生成的图像文件的URL?