每次使用python循环时,是否可以保存分配给一个变量的所有值?
我有下面的snmp get代码,工作正常,但当我尝试使用接口号循环“t”提取设备(wlc)上的所有序列号时,它与打印功能配合良好,但当它将其保存到变量vaBinds[3][1]中时,它只保存最后一个序列号。如何在每次循环时保存所有变量值 不确定我的问题是否有意义,但请尽可能提供帮助。先谢谢你每次使用python循环时,是否可以保存分配给一个变量的所有值?,python,loops,variables,pysnmp,Python,Loops,Variables,Pysnmp,我有下面的snmp get代码,工作正常,但当我尝试使用接口号循环“t”提取设备(wlc)上的所有序列号时,它与打印功能配合良好,但当它将其保存到变量vaBinds[3][1]中时,它只保存最后一个序列号。如何在每次循环时保存所有变量值 不确定我的问题是否有意义,但请尽可能提供帮助。先谢谢你 for t in range(1, 3): t = str(t) t.strip() errorIndication
for t in range(1, 3):
t = str(t)
t.strip()
errorIndication, errorStatus, errorIndex, varBinds = next(
getCmd(SnmpEngine(),
CommunityData(item, mpModel=0 or 1),
UdpTransportTarget((str(i), 161), timeout=0, retries=0),
ContextData(),
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysName', 0)), # 0
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysLocation', 0)), # 1
ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysContact', 0)), # 2
ObjectType(ObjectIdentity('ENTITY-MIB', 'entPhysicalSerialNum', t)), # 3
ObjectType(ObjectIdentity('ENTITY-MIB', 'entPhysicalModelName', t))), # 4
)
# print(varBinds[3][1])
if errorIndication:
print(errorIndication)
elif errorStatus:
print('%s at %s' % (errorStatus.prettyPrint(i),
errorIndex and varBinds[int(errorIndex) - 1][0] or '?')) # error exceptions
else:
for varBind in varBinds:
B = varBinds[0]
如果我有你的问题,你正在引用一个值,它位于可变容器数据结构的某个地方。由于是可变的,它在每次调用时都会发生变异 如果是这种情况,也许您可以在每次迭代中引用标量(不可变)值:
my_values = []
for t in range(1, 3):
# perform SNMP GET
...
my_values.extend((vb[0], vb[1]) for vb in var_binds)
欢迎使用StackOverflow(您的帐户似乎是新的)。小建议,您应该将代码减少到最小的可重复问题。当你把完整的代码放在这里时,读者会觉得有责任为你解决这个问题。AsTeR是对的,总是尝试提供一个