2016-09-29 52 views
0

的全名给定一个嵌套类B得到一个嵌套类

class A: 
    class B: 
     def __init__(self): 
      pass 

ab = A.B() 

我怎样才能获得类ab的全称是什么?我希望得到像A.B这样的结果。

+1

你为什么嵌套类?你需要什么名字?你试图解决的实际问题是什么? – jonrsharpe

+0

我最强烈的理由之一就是表现出像模块的良好实践。例如,我有一个类是所有模块的信封。我使用它,因为python没有完美的模块解决方案。 第二个原因是它更好的分解问题。 –

+2

这不是一个很好的理由; Python *确实有模块的解决方案,而且它也是错误的模块。包含'__init __。py'的文件或目录是模块。您不必将所有内容都包装在类中,这不是Java。也许你应该问这个问题。 – jonrsharpe

回答

2

你可以得到的全名,__qualname__,其__class__

>>> ab.__class__.__qualname__ 
'A.B' 

最好用type(这在实例调用__class__):

>>> type(ab).__qualname__ 
+0

非常感谢。 –