2014-07-04 50 views
0

的元組從BaseClass.__subclasses__()是:如何檢索子類的元組

[ClassA, ClassB] 

我想要得到的東西,如:

((ClassA,), (ClassB,)) 

我已經試過這一點,但它不工作:

[tuple(x()) for x in BaseClass.__subclasses__()] 

回答

0

您可以使用以下方法:

tuple((x,) for x in BaseClass.__subclasses__()) 

請參見下面的演示:

>>> class BaseClass: 
...  pass 
... 
>>> class ClassA(BaseClass): 
...  pass 
... 
>>> class ClassB(BaseClass): 
...  pass 
... 
>>> BaseClass.__subclasses__() 
[<class '__main__.ClassA'>, <class '__main__.ClassB'>] 
>>> 
>>> tuple((x,) for x in BaseClass.__subclasses__()) 
((<class '__main__.ClassA'>,), (<class '__main__.ClassB'>,)) 
>>> 
0

如果你想打開一個列表轉換成一個元組,每一個列表項本身是一個元組,嘗試:

tuple(map(tuple, BaseClass.__subclasses__()))