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:

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 funct

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 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 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." + function

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 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 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 w

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 Hof

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 ;) -- http:/

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() foobar

[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