python - 基于模式的类的装饰方法
问题描述
嗨,像这样的课程:
def Foo:
def calc(self):
print "calc"
def on_get(self):
print "on get"
def on_post(self):
print "on post"
我想在以on_
.
def debuggable(cls):
from types import FunctionType
def pdb_injector(view):
def injector_wrapper():
import pdb; pdb.set_trace()
view()
return injector_wrapper
class wrapped(cls):
views = [x for x,y in cls.__dict__.items() if type(y) == FunctionType and 'on_' in x]
for view in views:
_view = getattr(cls,view)
_view = pdb_injector(_view)
setattr(cls ,view, _view)
return wrapped
当我Foo.on_get()
加入班级后打电话@debuggable
时。Foo
我收到此错误:
类型错误:injector_wrapper() 不接受任何参数(给定 1)。
为什么我会收到此错误?
解决方案
推荐阅读
- java - Api Java ElasticSearch | 通过传递列表并返回所有匹配项进行搜索
- encryption - 确保已部署软件的公钥安全
- javascript - 子类的父方法未被调用 React
- angular8 - “无法读取未定义的属性'组件'”,同时通过 Angular 8 中的 params.context 从另一个组件调用一个组件的方法
- shopware - StorefrontRenderEvent::class 事件
- r - R - 重新排序数据框保持第一列
- django - 编辑部分/站点 Django 时限制管理员中的 ForeignKey 字段
- laravel - Vue 条纹元素的 createPaymentMethod 在 Laravel 中不起作用,TypeError: Object(...) is not a function 发生错误
- django - 尽管使用了正确的共享访问签名值,但 Azure 服务总线消息间歇性地未经授权......为什么?
- java - Java 上的 Tensorflow:如何执行 RGB 到 BGR 的操作?