2017-01-25 89 views

回答

1

你可以從the source code看到,PriorityQueue類沒有實現__len____bool__,默認的是,如果一個對象出現時,它是truthy:

如果一個類定義既不__len__()也不__bool__(),其所有 實例被認爲是真實的。

+1

接下來的問題是「爲什麼他們實現了qsize()函數而不是__len __()?」除了源代碼中的註釋之外什麼都不知道,似乎由於多線程和競爭條件,qsize()只返回近似大小,因此他們可能不想使用具有意外結果的魔術方法。謝謝喬恩。 – BeardedOne85

+1

@ BeardedOne85是的,沒錯;實現'__len__'意味着他們實際上知道它是什麼! – jonrsharpe

+0

@ BeardedOne85現在他們只需要保持一致並將'empty()'記錄爲「如果隊列大致爲空則返回True」。 :-) –

相關問題