我正在用 Python 编写代码来设计软件应用程序。我想在我的代码中添加以下功能:
当用户开始使用软件时,ping()
会运行一个函数并尝试连接到互联网以获取一些数据。如果网络不可用,则应不断检查网络可用性以获取数据。虽然那ping()
是不断检查网络,但我希望我的软件应用程序做通常的事情。
我的代码是:
def ping():
global lst1
if network_connection() is True:
links = lxml.html.parse("http://google.com").xpath("//a/@href")
for url in links:
lst1.append(url)
else:
ping()
def network_connection():
network=False
try:
response = urllib2.urlopen("http://google.com", None, 2.5)
network=True
except urllib2.URLError, e:
pass
return network
当应用程序启动时,我调用ping()
并在ping()
函数内部进行递归调用。这显然是错误的,因为在这种情况下,我的代码将停留在此递归调用中,直到网络连接可用并且不会启动应用程序。
无论如何,我可以同时做两件事:检查网络可用性和同时运行其余代码吗?