[英]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 None
而if not my_class_instance
,則這樣的檢查應該更明確,並使用它,但是如果您從不期望實際值(而不是None
)永遠是假的,以這種方式編寫測試並不罕見。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.