从locals()或globals()中查找并删除Python对象

时间:2014-09-22 16:24:01

标签: python python-2.7 telnetlib

我正在使用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

1 个答案:

答案 0 :(得分:2)

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

tn = None

现在您可以测试值:

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

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