在pysnmp中重用getCmd对象。

问题描述 投票:0回答:2

在pysnmp文档中,有一个getCmd类,我想知道是否可以只实例化一次这个类,然后在以后通过传递新的ids来重复使用它。 我不确定getCmd类是否暴露了允许我改变ids的方法。

http:/pysnmp.sourceforge.netdocshlapiasyncoresyncmanagercmdgengetcmd.html。

python python-2.7 snmp pysnmp
2个回答
0
投票

getCmd的名字是指一个函数,而不是一个类。严格来说,它是一个生成器,但这在这里并不重要。

调用*Cmd()很便宜,因为所有繁重的工作和状态管理都是在SnmpEngine对象(getCmd的第一个参数)上完成的。因此,从性能的角度来看,尽可能地保持SnmpEngine对象的持久性是很重要的。

>>> from pysnmp.hlapi.asyncore import *
>>> snmpEngine = SnmpEngine()
>>> for oid in ['1.3.6.1.2.1.2.2.1.8.1', '1.3.6.1.2.1.2.2.1.8.2']:
...     g = getCmd(snmpEngine,
...                CommunityData('public'),
...                UdpTransportTarget(('demo.snmplabs.com', 161)),
...                ContextData(),
...                ObjectType(ObjectIdentity(oid)))
>>>     print(next(g))
© www.soinside.com 2019 - 2024. All rights reserved.