【发布时间】:2011-05-13 01:36:06
【问题描述】:
我有一个通过 telnet/pexpect 登录到传感器并充当数据收集器的功能。
我不想重写登录、抓取数据并从中解析出相关输出的部分 (pexpect)。但是,我需要用这段代码和它收集的数据做不同的事情
例如,我可能需要:
距离返回第一个读数的时间
取不同数量传感器读数的平均值
返回状态(即一条数据)或返回传感器 阅读(这是一个单独的部分 数据)来自输出
最终,它仍然应该以相同的方式登录和解析输出,我想为该部分使用一个代码块。
在代码的更高层,它被立即使用。当我调用它时,我知道我需要收集什么类型的数据,仅此而已。构造对象太笨拙了。
我的使用已经超过了向单个函数添加更多参数。
有什么想法吗?
【问题讨论】:
-
Python 只有几个全局结构:函数、对象、类、模块。是什么让你觉得“构造对象太笨拙”?
-
这样,在功能上,我需要像使用方法一样使用它并执行一个方法,一次。为此实例化一个类似乎很麻烦。
-
也许您可以使用某种 Builder 模式?
Sensor().timeInitial().calcAverage().returnStatus().go() -
类方法可能吗?他们可以在类中存储共享状态。
-
我不知道你有什么反对类。为传感器连接创建一个可以记录有关连接的元数据(时间等)的类似乎是一个整洁的解决方案。
标签: functional-programming python abstraction pexpect