Python 3.x 使用命令行参数调用类方法
如果我的术语都错了,我会道歉;我还在学习Python的基础知识。我无法用谷歌搜索这个问题,可能在很大程度上是因为我不懂术语 所以。我在.py脚本中构建了一个类,其中包含许多方法/函数。为了使这一点更加简单,我想从命令行参数调用它们。我不知道如何解释它,也找不到无水的例子,所以我将尝试演示它: 例如,mute_on就是我想要调用的函数。我使用参数中的函数/方法运行脚本,如下所示:Python 3.x 使用命令行参数调用类方法,python-3.x,function,class,methods,arguments,Python 3.x,Function,Class,Methods,Arguments,如果我的术语都错了,我会道歉;我还在学习Python的基础知识。我无法用谷歌搜索这个问题,可能在很大程度上是因为我不懂术语 所以。我在.py脚本中构建了一个类,其中包含许多方法/函数。为了使这一点更加简单,我想从命令行参数调用它们。我不知道如何解释它,也找不到无水的例子,所以我将尝试演示它: 例如,mute_on就是我想要调用的函数。我使用参数中的函数/方法运行脚本,如下所示: python3 ./myscript.py mute_on 我假设我们导入sys(?),定义类和函数,并从类中创建相
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]}()
有什么想法吗,善良的人们?我已经被自动引用,但我不知道这些信息在这里如何帮助我
我已尝试设置cmnd='tun_off',但以下操作失败了
getattr(mypioneer, str(cmnd))
getattr(mypioneer, cmnd)
谢谢 这个答案似乎有点基本,但我不能抱怨它的功效
mypioneer = PioneerDevice('Pioneer AVR', '192.168.2.89', 8102, 10)
exp = 'mypioneer.' + sys.argv[1] + '()'
print('Executing: ' + exp )
exec(exp)
我放弃了loking以获得一个优雅的答案,只是基于commandline参数构造了一个我想要执行的字符串(exp)。很好。。Home Assistant可以使用相同的脚本在我的Pioneer AVR上调用50个telnet控件。可能重复的