【发布时间】:2017-12-19 16:56:49
【问题描述】:
完整代码示例:
def decorator(class_):
class Wrapper:
def __init__(self, *args, **kwargs):
self.instance = class_(*args, **kwargs)
@classmethod
def __getattr__(cls, attr):
return getattr(class_, attr)
return Wrapper
@decorator
class ClassTest:
static_var = "some value"
class TestSomething:
def test_decorator(self):
print(ClassTest.static_var)
assert True
尝试执行测试时,出现错误:
test/test_Framework.py F
test/test_Framework.py:37 (TestSomething.test_decorator)
self = <test_Framework.TestSomething object at 0x10ce3ceb8>
def test_decorator(self):
> print(ClassTest.static_var)
E AttributeError: type object 'Wrapper' has no attribute 'static_var'
是否可以从装饰类访问静态字段?
【问题讨论】:
-
你能显示你得到错误的代码吗?从上面的代码 sn-ps 并不能立即看出问题所在。
-
如果您在单个 sn-p 中提供了导致错误的所有代码,将会很有帮助。我花了几分钟才明白你在做什么。
-
请edit您的问题而不是发表评论,以便您可以正确格式化代码。
-
已发布完整代码。
-
TestSomething类对于这个问题不是必需的,所以我删除了它。
标签: python class class-decorator