每當我運行以下單元測驗時,它都會掛起而沒有任何反應。程式本身在 1 秒內回傳一個輸出,但我已經運行了 5 分鐘以上,沒有發生任何事情。
import unittest
from syntax import *
class SyntaxTest(unittest.TestCase):
def testCase(self):
self.assertEqual(CheckSyntax('C'), 'Formeln ?r syntaktiskt korrekt')
if __name__ == '__main__':
unittest.main()
代碼本身是一個簡單的分子語法檢查器。它尚未完全完成,但對于上面指定的輸入('C')運行良好。我已將其上傳到此處:https : //pastebin.com/rD3f6PWL
uj5u.com熱心網友回復:
您正在匯入語法模塊,這意味著它將運行所有函式和類定義(而不是其中的代碼)以及主體中的任何其他代碼。語法模塊的最后一行是
print(CheckSyntax(input()))
因此,當您匯入語法模塊時,將執行此行并等待輸入。如果您只想在將語法作為腳本運行時執行此行,那么最好將其包裝在 if main 塊中,例如
if __name__ == "__main__":
print(CheckSyntax(input()))
這樣,最后一行只會在腳本直接運行時運行,而不是在將其匯入以在其他地方使用時運行。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352794.html
