2017-06-03 57 views
1

给定一个类,如何列出其所有内部类列出给定类的所有内部类 - Python

class Car: 
    some_var = "var" 

    class Engine: 
     some_other_var = "var2" 

    class Body: 
     another_var = "var3" 

现在给出Car我希望能够列出或遍历所有的内部类(EngineBody

(Python的3.5)

+0

汽车.__ dict__应该给你,你使用的是什么版本的Python的起点 – Duikboot

+0

? – jpmc26

+1

为什么你要在'Car'里面定义这些类?在Python中这是可以做到的,但是很少需要。你可能应该使用这些变量的实例属性,而不是类属性。您可以直接使用类对象来存储类似的数据,但通常的做法是创建类的实例。 –

回答

3

你可以做这样的事情:

import inspect 
[d for d in dir(Car) if inspect.isclass(getattr(Car, d))] 

它会给你一个班级列表Car

要留意,可变d是一个字符串

+0

这也返回'__class__'。 应该添加'和d!='__class __''我猜测 – bluesummers