在Python中表示特殊值?
我想表示在Python中表示特殊值?,python,constants,Python,Constants,我想表示nil的值,这是一个特定于我的应用程序的值,并将其与Python内置的None区分开来。最优雅的方式是什么?请注意,nil是唯一的常量值。使用sentinel对象: nil = object() 现在,您可以测试是否为零或是否为非零,就像您可以测试是否为无一样 当然,任何使用它的代码都必须从定义它的模块中导入它;它不是一种内置方式,无是内置的。使用sentinel对象: nil = object() 现在,您可以测试是否为零或是否为非零,就像您可以测试是否为无一样 当然,任何使用它的
nil
的值,这是一个特定于我的应用程序的值,并将其与Python内置的None
区分开来。最优雅的方式是什么?请注意,nil
是唯一的常量值。使用sentinel对象:
nil = object()
现在,您可以测试是否为零
或是否为非零
,就像您可以测试是否为无
一样
当然,任何使用它的代码都必须从定义它的模块中导入它;它不是一种内置方式,无
是内置的。使用sentinel对象:
nil = object()
现在,您可以测试是否为零
或是否为非零
,就像您可以测试是否为无
一样
当然,任何使用它的代码都必须从定义它的模块中导入它;它不是一个内置的方式
None
是内置的。如果我以同样的方式创建另一个常量,它会与nil
不同吗?如果我想像公开一个普通类一样公开它(因为我本质上希望它表示一个只有一个对象的类),最好在文件的全局范围内保留nil。如果使用is
测试,其他值将不同。@Matthias Forobject
实例,即使<代码>=< /代码>也会认为它们是不同的。将这种“单例”与==
(也适用于None
、省略号和未实现的)进行比较是不习惯的。@delnan:这么多年后仍在学习…@user3793111:是的,另一个常量将完全不同。如果我以同样的方式创建另一个常量,这有别于nil
?如果我想像公开一个普通类一样公开它(因为我本质上希望它表示一个只有一个对象的类),最好在文件的全局范围内保留nil。如果使用is
测试,其他值将不同。@Matthias Forobject
实例,即使<代码>=< /代码>也会认为它们是不同的。把这样的“单例”与==
(也适用于无
、省略号
和未实现
)进行比较是不习惯的。@delnan:这么多年后仍在学习…@user3793111:是的,另一个常量将是完全不同的。