В описании языка python упоминаются три объекта, которые имеют единственный уникальный экземпляр: None
, NotImplemented
и Ellipsis
(section 3.2 "The Standard Type Hierarchy"). Тест x is None
является распространенной идиомой, гарантируемой гарантией уникальности None
. Я не могу найти никакого упоминания об объектах уникального экземпляра, будь то в документации на python или при переполнении стека. Несколько вопросов, таких как this one, содержат интересные предложения о способах создания таких объектов, но я хочу знать, есть ли какие-либо из этих трех встроенных модулей, которые я пропустил.Другие объекты уникального экземпляра, кроме None в python?
Например, ()
представляется уникальным (по общему признанию, очень ограниченным тестированием в CPython), также является ли тест x is()
безопасным? Или x ==()
обязательный для этого случая?
Нет смысла тестировать 'x is()', 'если x' достигнет того же. Почему вы действительно спрашиваете? –
Существует множество возможных значений, для которых 'bool (x)' является 'False'. Мне нужно было проверить, был ли 'x' фактически'() ', а не одной из других возможностей, по той же причине, что вы используете' x is None '. –
нет, если x является кортежем, 'isinstance (x, tuple)' также явно разрешит вам проверить, что x на самом деле является кортежем –