python - python中带有参数的自定义静态方法装饰器
问题描述
在我的情况下,我想制作一个应该像 a 一样工作的自定义装饰器@staticmethod
,但也有一些参数。
伪代码:
class Deco:
def __init__(self, arg1, arg2):
self.arg1 = arg1
self.arg2 = arg2
def func(f, *args, **kwargs):
return f(*args, **kwargs)
self.f = func
def __get__(self, obj, objtype=None):
return self.f
def __call__(self, f, *_args, **_kwargs):
def inner(*_args, **_kwargs):
print(self.arg1, self.arg2)
return self.f(f, *_args, **_kwargs)
return inner
class Test:
arg1=3
arg2=4
@Deco(arg1=1, arg2=2)
def test1(arg1, arg2):
print(arg1, arg2)
def test2(self):
Test.test1(arg1=self.arg1, arg2=self.arg2)
print('Works!')
任何想法它是如何工作的?
解决方案
推荐阅读
- javascript - 如何使用 responsive-loader 和 jest?
- c# - 处置 EntityConnection 还处置 DbConnection 内?
- swift - HydraSDK 连接失败
- python - 如何以时间(不是日期)为 x 轴绘制散点图
- c++ - 如何将 lambda 返回的浮点数组插入到浮点向量中?
- python - 在 Windows 上使用 python -m pip install 和 numpy(用于 tensorflow 对象检测)的编译器错误
- r - 如何在 R 中使用 shinyDirButton 选择多个文件夹
- sql - HIVE - 基于日期计算分区的统计信息
- c# - xUnit - 取消测试时未调用 Collection Fixture 类的 Dispose 方法
- javascript - 对格式不正确的日期进行排序