Używam getattr do wywoływania różnych funkcji w zależności od zmiennej.Python za pomocą funkcji getattr do wywoływania o zmiennych parametrach
robię coś takiego:
getattr(foo, bar)()
To działa jak wywołanie funkcji foo.bar()
Moim problemem jest to, że mam funkcji 'bar' i chcę nazywać go z inna parametry. Na przykład:
def f1() :
pass
def f2(param1) :
pass
def f3(param1,param2) :
pass
tak 'bar' może być F1, F2 lub F3
Próbowałem to: assumming że params jest lista, która zawiera wszystkie parametry potrzebne do funkcji 'bar'
getattr(foo, bar) (for p in params :)
ja oglądając rozwiązania „czysty”, bez potrzebne do oglądania długości na params zmiennej
Wiem, że OP nie pytał konkretnie, ale dodałem też '** kwargs', po prostu nie skończyłby z trudnymi do znalezienia błędów, gdyby spróbował użyć argumentów słów kluczowych. –
@ sr2222 - Dodano. – mgilson