Аплоги, если у меня неверная терминология; Я все еще изучаю основы Python. Мне не удалось решить эту проблему в Google, вероятно, в значительной степени из-за того, что я не знаю терминологию ..
Итак. Я построил класс в скрипте .py с множеством методов / функций. Для простоты я хочу вызвать их из аргумента командной строки. Я понятия не имею, как это объяснить, и я не могу найти ни одного примера, поэтому я попытаюсь продемонстрировать это:
Возьмем, к примеру, mute_on в качестве функции, которую я хочу вызвать. Я запускаю скрипт с функцией / методом в аргументе, например:
python3 ./myscript.py mute_on
Я предполагаю, что мы импортируем sys (?), Определим класс и функцию и создадим соответствующий объект из класса:
import sys
class TelnetAVR(PioneerDevice):
def mute_on(self, mute):
self.telnet_command("MO")
mypioneer = PioneerDevice('Pioneer AVR', '192.168.2.89', 8102, 10)
... и, наконец, я хотел бы, чтобы аргумент командной строки вызывал метод / функцию - вместо того, чтобы вызывать его явно как:
mypioneer.mute_volume()
.. Я хочу использовать arg ( sys.argv [1] ) для динамического вызова функции, например:
mypioneer.{sys.argv[1]}()
Есть идеи, добрые люди? Меня автоматически сослали на Что такое getattr () и как мне его использовать? , но я понятия не имею, как эта информация может мне помочь.
Я попытался установить cmnd = 'turn_off' , а затем произошла ошибка ...;
getattr(mypioneer, str(cmnd))
getattr(mypioneer, cmnd)
Спасибо!