[Beginner] Calling a function by its name in a string

2005-07-27 Thread Tito
Hi all: Is there a metalanguage capability in Python (I know there are many) to call a function having its name in a string? Something like: __call__(foo) instead of: foo() Regards, Tito -- http://mail.python.org/mailman/listinfo/python-list

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Bill Mill
On 7/27/05, Tito [EMAIL PROTECTED] wrote: Hi all: Is there a metalanguage capability in Python (I know there are many) to call a function having its name in a string? Something like: __call__(foo) instead of: foo() def foo(): print foobarred ... foo() foobarred eval(foo())

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Paolino
Tito wrote: Hi all: Is there a metalanguage capability in Python (I know there are many) to call a function having its name in a string? Something like: __call__(foo) instead of: foo() Regards, Tito eval('foo()') should do, but it's said a bad practice ;) --

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Michael Hoffman
Tito wrote: Hi all: Is there a metalanguage capability in Python (I know there are many) to call a function having its name in a string? Something like: __call__(foo) instead of: foo() locals()[foo]() will be a little more predictable than eval(foo()). -- Michael Hoffman --

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Grant Edwards
On 2005-07-27, Paolino [EMAIL PROTECTED] wrote: Is there a metalanguage capability in Python (I know there are many) to call a function having its name in a string? eval('foo()') should do, but it's said a bad practice ;) An alternative to eval() is: def foo(): ... print foo was called

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Tito
Thank you both for your quick answers. What I wanted is to parameterize a function with another member function, like this: def printFunctionForEach(collection, functionName): for elem in collection: print eval(elem. + functionName + ()) Moreover, I wanted to do it with a property:

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Tito
Thank you both for your quick answers. Thank you *all* for your quick answers. -- http://mail.python.org/mailman/listinfo/python-list

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Bill Mill
On 7/27/05, Tito [EMAIL PROTECTED] wrote: Thank you both for your quick answers. What I wanted is to parameterize a function with another member function, like this: def printFunctionForEach(collection, functionName): for elem in collection: print eval(elem. + functionName + ())

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Paul Rubin
Tito [EMAIL PROTECTED] writes: def printPropertyForEach(collection, propertyName): for elem in collection: print eval(elem. + propertyName) Is there another approach to do it? Yes, use the getattr function: for elem in collection: print getattr(elem, propertyName) --

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Tito
Once again: thank you. -- http://mail.python.org/mailman/listinfo/python-list

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Peter Hansen
Tito wrote: Thank you both for your quick answers. What I wanted is to parameterize a function with another member function, like this: def printFunctionForEach(collection, functionName): for elem in collection: print eval(elem. + functionName + ()) Note: member function is

Re: [Beginner] Calling a function by its name in a string

2005-07-27 Thread Steven D'Aprano
On Wed, 27 Jul 2005 14:18:25 -0400, Bill Mill wrote: On 7/27/05, Tito [EMAIL PROTECTED] wrote: Hi all: Is there a metalanguage capability in Python (I know there are many) to call a function having its name in a string? Something like: __call__(foo) instead of: foo() def foo():