【发布时间】:2012-08-05 03:21:28
【问题描述】:
所以我有一个 .py 文件,其中包含一个可以作为属性访问其子类的类。所有这些子类都是预先定义的。我还需要所有子类都具有相同的能力(让它们自己的子类可以作为属性访问)。我一直面临的最大问题是我不知道如何在我的__getattr__() 实现中访问当前类,所以这是一个很好的起点。
这是我迄今为止尝试过的一些 Python+伪代码。我很确定它不会起作用,因为__getattr__() 似乎只适用于类的实例。如果是这种情况,对不起,我对 Python 中的 OOP 并不像我希望的那样熟悉。
class A(object):
def __getattr__(self, name):
subclasses = [c.__name__ for c in current_class.__subclasses__()]
if name in subclasses:
return name
raise AttributeError
【问题讨论】:
-
如果我们能看到一些代码……或者至少是伪代码示例。
-
鉴于我提到的问题,我几乎没有代码,一个解决方案也不应该有太多行。不过我会试一试的
-
具体来说,向我们展示“其子类可以作为属性访问”的代码。
标签: python class properties getattr