我正在使用telnetlib与某些已将Telnet实现为单用户的设备进行通信。
因此,我必须检测并删除先前尝试建立通信所创建的telnet对象。(例如:tn = telnetlib.Telnet(HOST)
我的尝试有点像波纹管,但是没有用:

 if 'tn' in loccals() or 'tn' in globals():
     print "Telnet object exists. Remove it."
     tn.close()
     del tn
 else:
     print "Create a Telnet object."
     global tn
     tn = telnetlib.Telnet(HOST)

print tn

最佳答案

不要删除,重新绑定。首先将tn设置为None

tn = None


现在您可以测试该值:

if tn is not None:
    tn.close()
    tn = None
else:
    tn = telnetlib.Telnet(HOST)


请注意,global关键字将整个范围内的名称标记为全局名称,而不仅仅是从该行开始。

关于python - 从locals()或globals()中查找并删除Python对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25978749/

10-12 21:41