Calling Functions via String Name
Imagine you have a scenario where you need to dynamically call a function using its name stored in a string. This may arise in scenarios involving highly dynamic environments or metaprogramming. Here's how to approach this in Python:
The key technique lies in Python's getattr function. It allows you to retrieve an attribute or method from an object given its name as a string. To call a function of a module dynamically:
import foo func_name = "bar" bar = getattr(foo, func_name) result = bar()
In this example, we assume a module foo with a function bar. getattr(foo, 'bar') fetches the bar function reference. Invoking result = bar() executes the function, resulting in its output being stored in result.
Notably, getattr can be employed not just for module-level functions but also for class instances, class methods, and more. Its versatility makes it an essential tool for navigating Python's dynamic features.
The above is the detailed content of How Can I Call a Python Function Dynamically Using Its Name as a String?. For more information, please follow other related articles on the PHP Chinese website!