【发布时间】:2017-07-08 15:51:29
【问题描述】:
我正在编写一个包含一些嵌套类的小型 Python 应用程序,如下例所示:
class SuperBar(object):
pass
class Foo(object):
NAME = 'this is foo'
class Bar(SuperBar):
MSG = 'this is how Bar handle stuff'
class AnotherBar(SuperBar):
MSG = 'this is how Another Bar handle stuff'
我使用嵌套类来创建某种层次结构并提供一种简洁的方式来实现解析器的功能。
在某些时候,我想创建一个内部类列表。我想要以下输出:
[<class '__main__.Bar'>, <class '__main__.AnotherBar'>]
问题是:以pythonic方式获取内部类列表的推荐方法是什么?
【问题讨论】:
-
1.你为什么要嵌套类,你能提供更多的上下文吗? 2. 你不只想要
SuperBar的所有子类(在这种情况下参见stackoverflow.com/q/3862310/3001761)? -
这还不够。在实际应用中我有更多的根类,比如
Foo,还有更多的内部类来完成解析树。我还需要强制在根令牌Foo的上下文中找到找到的给定令牌(如Bar)。为了捕捉这种层次结构,我使用了这些内部类。 -- 谢谢 -
然后edit 提供更多上下文。您可能试图完全解决错误的问题。
标签: python python-2.7 python-3.x inner-classes metaclass