就像標題所說,我想知道爲什麼在下一個表達式中的默認值被初始化,而不管它被使用。下面是一個例子。Python - 爲什麼下一次初始化的默認值沒有被使用?
class Test(object):
def __init__(self):
print("Test object created")
print(next((i for i in range(1)), Test()))
以前我還以爲這只是打印出來0
而不是Test object created
以及0
。我最近發現這不是由於這種行爲造成的錯誤。
這是有原因嗎?這是一個設計決定嗎?
「我最近發現通過這種行爲導致的錯誤並非如此」 - 這裏有什麼問題,您將兩個函數作爲參數傳遞給'print'函數,它正在按預期處理這些函數。 –
@VikasNehaOjha據推測,哨兵對象的創建有一些副作用,如果它不應該被執行時被執行,會造成嚴重破壞。這當然是一些非常可疑的設計,但這是可以想象的。 – delnan
這裏正在執行哪些不應執行的內容? –