I have an object and
I want to call a method that I have constructed the name for in a
string.
For
example:
str_method =
'myfun'
obj.str_method
Of course, this
fails. I know I could probably do this with exec but is there a better
way?
For context, the
specific application is a wrapper to calling p4python. Note that the second
return (under the else under the try) is where I want to call 'method' which is
the string name of a method valid for self._client.
def _p4runner(self, method,
*args):
'runs a Perforce command'
try:
if callable(method):
return method(*args)
else:
return self._client.method(*args)
except p4.P4Client.error:
raise
except:
if self._client.errors:
raise p4.P4Client.error('\n'.join(self._client.errors))
else:
raise
'runs a Perforce command'
try:
if callable(method):
return method(*args)
else:
return self._client.method(*args)
except p4.P4Client.error:
raise
except:
if self._client.errors:
raise p4.P4Client.error('\n'.join(self._client.errors))
else:
raise
Clear as
mud?
Jeff
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor