RHP almost has it. You want to combine the dir
, type
, and getattr
functions. A comprehension like this should be what you want:
o = myClass(1)
[type(getattr(o, name)).__name__ for name in dir(o) if name[:2] != '__' and name[-2:] != '__']
This will give you ['int', 'str']
(because myInt
sorts before myStr
in alpha-order).
Breaking it down:
getattr
looks up the name of an attribute on an object
type
gets the type of an object
__name__
on a type
gives the string name of the type
dir
lists all attributes on an object (including __dunder__
attributes)
- the
if
test in the comprehension filters out the __dunder__
attributes