【发布时间】:2012-10-15 20:39:44
【问题描述】:
我在执行此操作时遇到了一些问题。目前我有一个模块,里面有一堆类,其中一些类将被装饰以指示一些东西。
我想要创建一个只包含装饰类的新的假模块。所以是这样的:
class FakeModule: pass
def Decorator(cls):
attr = getattr(RealModule, cls)
setattr(FakeModule, cls, attr)
有什么建议吗?我对 python 和 python 装饰器很陌生,所以我不太确定这样做的正确方法是什么。
【问题讨论】:
-
我对你使用“模块”这个词感到困惑。还有你想要完成的事情。以及为什么。
-
基本上我有一个包含一堆测试类的文件。其中一些测试类将使用@Decorator() 进行修饰。在其他地方我有类似的东西:FunctionWhichDoesStuffWithTestClasses(file_with_classes)。我需要的是 file_with_classes 是“仅”装饰的类,因此我尝试动态创建。
-
1.你是什么意思“测试”类 - 测试类,或者更像是“实践”类? 2. 我还是不明白你想要完成什么。你读过任何装饰器文档吗? wiki.python.org/moin/PythonDecorators
-
对不起,它们基本上只是测试类。我想要完成的是,基于这些装饰器,一些测试类应该加载,而另一些则不应该......