Stef Mientki <[EMAIL PROTECTED]> writes: > I want to have a (dynamically) list of all classes defined in a py-file. > Is there a way of getting this list, without manually parsing the file ?
>>> import random >>> for name in dir(random): ... obj = getattr(random, name) ... if isinstance(obj, type): ... print "%(name)s is a type" % locals() ... Random is a type SystemRandom is a type WichmannHill is a type _BuiltinMethodType is a type _MethodType is a type >>> And, since you asked for just getting the list, here's the list of names: >>> [name for (name, obj) in ... [(name, getattr(random, name)) for name in dir(random)] ... if isinstance(obj, type)] ['Random', 'SystemRandom', 'WichmannHill', '_BuiltinMethodType', '_MethodType'] Or the list of type objects themselves: >>> [obj for obj in ... [getattr(random, name) for name in dir(random)] ... if isinstance(obj, type)] [<class 'random.Random'>, <class 'random.SystemRandom'>, <class 'random.WichmannHill'>, <type 'builtin_function_or_method'>, <type 'instancemethod'>] -- \ "Pinky, are you pondering what I'm pondering?" "Well, I think | `\ so, Brain, but I can't memorize a whole opera in Yiddish." -- | _o__) _Pinky and The Brain_ | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list