将perl代码移植到python的正确方法

2024-05-28 19:45:23 发布

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

我想创建一打左右的python脚本来与网络设备进行通信,其中大多数都会执行某种telnet/ssh/snmp操作,要么获取信息,要么修改信息。你知道吗

在perl中,我通常会使用一个嵌套的散列,它可以正常工作,尝试用python将它重新写入一个嵌套的字典中,这个可以工作。。。。但是我不确定我是否应该使用类。基本上,我需要的最重要的数据结构是:

  • “workunit”,基本上是一个具有许多属性的设备,如 IP地址、主机名、日志文件位置、结果等。。

  • “设置”和“运输”字典基本上说我们是 执行ssh或snmp以及它的设置(userid/password, 社区字符串等)

因此,如果我为10台设备运行一个脚本,那么我通常会有一个字典字典,其中ipaddress作为dict的键

当然,我也可以创建一个“Workunit”类,并创建一个“Workunit”对象的基本列表,但是我对python的了解越多,“pythonic”就越少感觉。。。对这种情况下的“正确”方法有什么见解吗?(我相信两者都能奏效)。你知道吗


Tags: 文件脚本信息数据结构字典属性sshperl
1条回答
网友
1楼 · 发布于 2024-05-28 19:45:23

这最终取决于你。如果你想让你的代码更具可重用性,那就花点时间来实现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):

相关问题 更多 >

    热门问题