抽象函数而不是对象的优雅方法是什么?

2024-05-15 01:07:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它通过telnet/pexpect登录到传感器,充当数据采集器。在

我不想重写登录、获取数据并从中解析出相关输出的部分(pexpect)。但是,我需要对这段代码和它收集的数据执行不同的操作

例如,我可能需要:

  • 返回第一个读数之前的时间

  • 取不同数量传感器读数的平均值

  • 返回状态(这是一条数据)或返回传感器 阅读(这是 数据)从输出

最终,它仍然应该登录和解析输出相同,我想为这个部分使用一个代码块。在

在代码的更高层,它被即时使用。当我打电话给它时,我知道我需要收集什么类型的数据,仅此而已。构造对象太笨拙了。在

我的用法已经超过了在单个函数中添加更多参数。在

有什么想法吗?在


Tags: 数据对象函数代码类型数量状态时间
2条回答

这种情况很普遍,我很惊讶你还没有像其他人那样做。在

重构函数以将其分解为更小的函数。在

函数是对象,可以作为参数传递给其他函数。在

def step1(): 
    whatever

def step2(): 
    whatever

def step2_alternative():
    whatever

def original( args ):
    step1()
    step2()

def revised( args, step2_choice ):
    step1()
    step2_choice()

现在你可以这样做了。在

^{pr2}$

它只是用函数对象进行OO编程。在

你能把一个数据处理函数传递给你描述为参数的函数吗?在

根据你的品味,这可能或多或少是优雅的。 (请原谅:我对pexpect一无所知,甚至可能误解了您的问题!)在

相关问题 更多 >

    热门问题