在pysnmp文档中,有一个getCmd类,我想知道是否可以只实例化一次这个类,然后在以后通过传递新的ids来重复使用它。 我不确定getCmd类是否暴露了允许我改变ids的方法。
http:/pysnmp.sourceforge.netdocshlapiasyncoresyncmanagercmdgengetcmd.html。
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))