dir()
produces a sorted list of names; these are just strings. They are not references to the actual objects. You can’t apply a call to a string.
Use the globals()
dictionary instead, this gives you a mapping with both the names and the actual objects:
for name, obj in globals().items():
if not name.startswith('__'):
print "name =", name
instance = obj()
instance.replay()
dir()
at the module level, without arguments, essentially returns sorted(globals())
.
3
solved creating an instance in a for loop