我有以下代码
def SetSnmpOid(oid, snmpDataType, value):
try:
global SNMP_COMMUNITY
global SNMP_HOST
global SNMP_PORT
cmdGen = cmdgen.CommandGenerator()
# Send to first Telnet IP address, different port for SNMP
dataType = "rfc1902." + snmpDataType
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.setCmd(
cmdgen.CommunityData(SNMP_COMMUNITY, mpModel=0),
cmdgen.UdpTransportTarget((SNMP_HOST, SNMP_PORT)),
(oid + "." + str(0), dataType(value)))
,运行时会生成此错误
File "H:/code/test_script.txt.py", line 105, in SetSnmpOid
(oid + "." + str(0), dataType(value)))
TypeError: 'str' object is not callable
我确定错误是指dataType
(评估为rfc1902.integer
,这是正确的)。问题似乎是将它用作函数调用dataType(value)
作为元组的一部分。
如果有人感兴趣,我正在尝试模拟找到的代码here。