如何获取每个返回值作为变量供以后使用?
How to get each returned value as variable for later use?
我正在尝试从这段代码中获取步行的返回值作为变量。
def walk(host, oid):
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
CommunityData('public'),
UdpTransportTarget((host, 161)),
ContextData(),
ObjectType(ObjectIdentity(oid)),
lookupMib=False,
lexicographicMode=False):
if errorIndication:
print(errorIndication, file=sys.stderr)
break
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'), file=sys.stderr)
break
else:
for oid, raw_value in varBinds:
print(f'item: {raw_value.prettyPrint()}')
我明白了:
item: 6000
item: 520
item: 200
item: 200
我如何才能将这些(可以限制为两个或树)作为变量供以后使用。
谢谢。
不打印项目,而是使用 yield
到 return 函数中的项目。
for oid, raw_value in varBinds:
yield raw_value
然后你可以像这样使用它们:
for item in walk(host, oid):
# do something with the item
我正在尝试从这段代码中获取步行的返回值作为变量。
def walk(host, oid):
for (errorIndication,
errorStatus,
errorIndex,
varBinds) in nextCmd(SnmpEngine(),
CommunityData('public'),
UdpTransportTarget((host, 161)),
ContextData(),
ObjectType(ObjectIdentity(oid)),
lookupMib=False,
lexicographicMode=False):
if errorIndication:
print(errorIndication, file=sys.stderr)
break
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?'), file=sys.stderr)
break
else:
for oid, raw_value in varBinds:
print(f'item: {raw_value.prettyPrint()}')
我明白了:
item: 6000
item: 520
item: 200
item: 200
我如何才能将这些(可以限制为两个或树)作为变量供以后使用。 谢谢。
不打印项目,而是使用 yield
到 return 函数中的项目。
for oid, raw_value in varBinds:
yield raw_value
然后你可以像这样使用它们:
for item in walk(host, oid):
# do something with the item