这可能更像是一个基于观点的问题,但我还是会继续
我有许多从远程设备获取多个值的函数,在计算时需要使用最新的值。因为它是一个远程设备,所以在请求值时必须使用特定于设备的getter
(我正在使用telnetlib,但我认为这无关紧要)
在实际使用中,可以安全地假设我将有大约10+个设备,每个设备都有10+个值。与设备的通信可能会失败并引发异常。在这种情况下,我收集的所有数据都将是无用的,因为我需要它来做我的计算,我不应该保存它,因为它不会是最新的值以后
到目前为止我的功能是这样的。。。其主要思想是,如果任何getter失败,将不会执行append行:
def GetTraits(object_list):
trait_dict = {"Foo":[],"Bar":[]}
for obj in object_list:
try:
Foo = obj.GetFoo()
Bar = obj.GetBar()
trait_dict["Foo"].append(Foo)
trait_dict["Bar"].append(Bar)
except Exception as e:
print e
# None type will be handled by other functions that need these values
trait_dict["Foo"].append(None)
trait_dict["Bar"].append(None)
return trait_dict
然而,这感觉像是很多非常冗余的代码,因为我可以在字典中有10+个特征
关于如何改进这段代码有什么想法吗?提前谢谢
卡尔
类型、类和方法(以及类方法)都是python中的一级对象。一种简单的方法是将方法简单地视为对象:
如果您有一个一致的命名方案,那么您可能希望使用字符串操作生成方法名,并使用
getattr
获取它们相关问题 更多 >
编程相关推荐