【问题标题】:Representing a special value in Python? [duplicate]表示 Python 中的特殊值? [复制]
【发布时间】:2014-07-01 08:40:45
【问题描述】:

我想表示nil 的值,这是一个特定于我的应用程序的值,并将其与Python 内置的None 区分开来。最优雅的方法是什么?请注意,nil 是唯一的常量值。

【问题讨论】:

    标签: python constants


    【解决方案1】:

    使用哨兵对象:

    nil = object()
    

    现在您可以测试is nilis not nil,就像测试None 一样。

    当然,任何使用它的代码都必须从定义它的模块中导入它;它不是 None 的内置方式。

    【讨论】:

    • 如果我以同样的方式创建另一个常量,那会与nil 不同吗?如果我想像普通类一样公开它(因为我本质上希望它代表一个只有一个对象的类),那么最好将 nil 留在文件中的全局范围内。
    • 如果您使用is 进行测试,其他值会有所不同。
    • @Matthias 对于object 实例,即使== 也会认为它们不同。将这样的“单例”与==(也适用于NoneEllipsisNotImplemented)进行比较是不习惯的。
    • @delnan:这么多年还在学习……
    • @user3793111:是的,另一个常量将完全不同。
    猜你喜欢
    • 2019-04-26
    • 2016-09-02
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    相关资源
    最近更新 更多