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

Peter Hansen peter at engcorp.com
Wed Jul 27 18:22:45 EDT 2005


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 spelled "method" in Python.

> Moreover, I wanted to do it with a property:
> 
> def printPropertyForEach(collection, propertyName):
>   for elem in collection:
>     print eval("elem." + propertyName)

And "property" (the way you are using it) is spelled "attribute".

In Python, properties are something else, similar to but more than just 
attributes.

Use of such terms according to conventional Python usage will in future 
make it somewhat easier to be understood and for you to understand the 
responses.

Cheers,
-Peter



More information about the Python-list mailing list