我想创建大约十几个与网络设备通信的python脚本,其中大多数将执行某种telnet / ssh / snmp操作,获取信息或修改它。
在perl中,我通常会使用嵌套的哈希,它可以正常运行,尝试将其重写为python中的嵌套字典,这样可行....但我不确定是否应该使用类。基本上我需要的最重要的数据结构是:
因此,如果我为10个设备运行一个脚本,那么我通常会有一个字典字典,其中ipaddress是该字典的关键字。
我当然也可以创建一个“Workunit”类,并创建一个“Workunit”对象的基本列表,但是我读的python越少,“pythonic”就越少。感觉......在这种情况下,对“正确”方法有什么见解? (我肯定都会工作)。
这最终取决于你。如果要使代码更易于重用,请花些时间在OOP下实现功能。由于您计划创建12个左右的脚本,因此可能是值得的。您描述的结构可以在脚本可以引用的库中创建。
在python中实现具有自定义数据类型的字典方面,您只需要实现一些必需的methods
class MyThing:
def __init__(self,name,location,length):
self.name = name
self.location = location
self.length = length
def __hash__(self):
return hash((self.name, self.location))
def __eq__(self, other):
return (self.name, self.location) == (other.name, other.location)
def __ne__(self, other):