可以引用局部变量

问题描述 投票:-2回答:2
pack = IP(dst=target)/ICMP()
resp = sr1(pack, timeout=2)

if resp == None:
 self.output_console ("no response")
elif IP in resp:
 if resp.getlayer(IP).ttl <= 64:
    self.output_console("*"*20)
    os = 'This Pc is using Linux'

else:
    os1 = "This Pc is using Windows"
self.output_console ("ttl value %d => %s"%(resp.getlayer(IP).ttl)+ os)
self.output_console("*"*20)

可以引用局部变量“os”,你可以帮助我吗?

python pycharm scapy
2个回答
2
投票

当你到达这一行时,警告告诉你:

self.output_console ("ttl value %d => %s"%(resp.getlayer(IP).ttl)+ os)

名称os可能尚未绑定到任何对象。这将与NameError崩溃。这可能是因为你在一个分支中使用os作为名称,然后在另一个分支中使用os1作为名称。

顺便说一下,检查Linux或Windows是否是这样的规范方法:

>>> import platform
>>> platform.system()
'Linux'

0
投票

os是标准库中的一个包。将它用作变量名称可能不是一个好主意

© www.soinside.com 2019 - 2024. All rights reserved.