gpt4 book ai didi

python - 将 Perl 代码移植到 Python 的正确方法

转载 作者:太空宇宙 更新时间:2023-11-03 14:21:38 28 4
gpt4 key购买 nike

我想创建大约十几个与网络设备通信的 python 脚本,其中大多数将执行某种 telnet/ssh/snmp 操作,获取信息或修改它。

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

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

  • “设置”和“交通”字典基本上说明了我们是执行 ssh 或 snmp 以及它的设置是什么(用户名/密码,社区字符串等..)

因此,如果我为 10 个设备运行一个脚本,那么我通常会拥有一个字典字典,其中 IP 地址作为该字典的键。

我当然也可以创建一个“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):

关于python - 将 Perl 代码移植到 Python 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47907655/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com