【发布时间】:2017-07-09 07:30:28
【问题描述】:
我正在创建用于 pyvisa 的仪器类。我不想手动将每个 SCPI 命令(大约 400 个)转换为方法,而是将命令快速参考复制到一个文本文件中,并拥有如下命令:
[SENSe:]TEMPerature:TRANsducer:RTD:RESistance[:REFerence]? [{MIN|MAX}]
以这样的方法结束:
def temp_tran_rtd_res_qry(*args):
<check for valid arguments>
cmd = 'TEMPerature:TRANsducer:RTD:RESistance?'
argstr = ''
for arg in args:
argstr += ' ' + arg
return self.query(cmd + argstr)
我掌握了解析命令的方法,并且我想出了如何使用 setattr() 从模板函数中创建具有正确名称的方法。
给我带来麻烦的部分是每个方法都知道分配给cmd 的内容。我想我可以将原始字符串作为属性添加到类中(命名类似于方法)并在方法中动态解析它们,但为此,方法能够根据它们的名称(或其他东西)检索类属性)。
【问题讨论】:
-
这就是我找到的答案。我的问题不仅仅是方法创建。也许我的问题不够具体。