我是 python 新手,下面的函式在需要停止的情況下不會停止。
def check_pi_installation_status():
proc1cmd = "grep " AppName
p1 = subprocess.Popen(['kubectl', 'get', 'pi', '-A'], stdout=subprocess.PIPE)
p2 = subprocess.Popen(proc1cmd, shell=True, stdin=p1.stdout, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p1.stdout.close()
stdout_list = p2.communicate()[0]
stdout_list = stdout_list.decode()
imagenamepi = stdout_list.split()
print("pi imagename ", imagenamepi)
if (imagenamepi[2] == 'Installed'):
print("Successfully Installed")
return
if (imagenamepi[2] == 'Failed'):
print(" Installation Failed")
return
if(imagenamepi[2] != 'Installed' and imagenamepi[2] != 'Failed'):
time.sleep(30)
# count = count 1
# print("count", count)
write_eventslog()
check_pi_installation_status()
以下是案例:
- 當我啟動此功能仍未達到“失敗”時,它會在達到“失敗”狀態時列印“安裝失敗”,但即使達到“失敗”狀態也會繼續。
- 當狀態已經“失敗”時,我運行了該函式,它按預期作業(它列印“安裝失敗”并出來。
uj5u.com熱心網友回復:
為什么不使用 if、elif 和 else,而不是使用多個 if 陳述句?這里的主要區別在于,當您有多個 if 陳述句時,無論如何它們都會運行,因此將其更改為:
if (imagenamepi[2] == 'Installed'):
print("Successfully Installed")
return
elif (imagenamepi[2] == 'Failed'):
print(" Installation Failed")
return
else:
time.sleep(30)
# count = count 1
# print("count", count)
write_eventslog()
check_pi_installation_status()
在這里,我們首先使用if,然后使用elif。elif是 IF 和 ELSE 的混合體,它基本上告訴編譯器:如果上面的陳述句沒有運行,請檢查此陳述句。您可以一次擁有多個 elif。最后,我們還有else。Else 告訴編譯器:如果沒有其他陳述句運行,則運行此陳述句。與 Elif 不同,您只能有一個 Else 條件。
這兩種方法的主要區別在于,當您使用 If、Elif 和 Else 時,運行條件??時會退出整個陳述句。
雖然我不太清楚為什么 return 不會立即退出函式,但使用 elif 和 else 會幫助你做同樣的事情。很可能,它適用于失敗狀態,因為其他兩個陳述句都不適用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/528286.html
標籤:Python功能if 语句返回休息
下一篇:R中兩個串列的迭代乘法
