簡體   English   中英

Python:不適用於類實例

[英]Python: Not for Class Instances

在Python中,我有以下情況:

我有一個名為my_class_instance的類的實例。

該代碼執行以下檢查:

if not my_class_instance:
    print ("check was reached")

什么不not ...在這種情況下檢查? my_class_instance是指None嗎?

not運算符將在您的實例上調用bool ,然后取反結果。 因此,如果您的類定義了__bool__方法,或者從父類繼承了__bool__方法,則該方法將由bool調用。 如果您只有一個但沒有__bool__ (空容器為false),它也會調用__len__ 如果您沒有這些方法之一,那么您的實例將永遠是真實的。

但是,即使您的類實例總是真實的, not my_class_instance仍然not my_class_instance 測試可能只是檢查變量是否具有實際實例,而不是像None這樣的虛假占位符值。 if my_class_instance is not Noneif not my_class_instance ,則這樣的檢查應該更明確,並使用它,但是如果您從不期望實際值(而不是None )永遠是假的,以這種方式編寫測試並不罕見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM