2024-10-03 02:39:18 发布
网友
我做这个有点困难。目前我有一个模块,里面有一堆类,其中一些类将被修饰以表示一些东西。在
我想要的是创建一个新的,假的模块,它只包含装饰类。所以像这样:
class FakeModule: pass def Decorator(cls): attr = getattr(RealModule, cls) setattr(FakeModule, cls, attr)
有什么建议吗?我对python和python decorators还很陌生,所以我不太确定正确的方法是什么。在
What I would like is to create a new, fake module which contains only the decorated classes
如果decorator在一个类上设置了一些唯一的属性或值,那么您可以从一个模块中获取所有类,并使用inspectmodule对它们进行筛选:
inspect
def is_decorated_class(cls, _sentinel=object()): return (inspect.isclass(cls) and getattr(cls, "some_attr", _sentinel) == value) name_class_pairs = inspect.getmembers(realmodule, is_decorated_class)
如果decorator在一个类上设置了一些唯一的属性或值,那么您可以从一个模块中获取所有类,并使用
inspect
module对它们进行筛选:相关问题 更多 >
编程相关推荐