繁体   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