Я хочу присвоить переменной («константе») значение, которое позволит этой переменной только когда-либо возвращать True
в is
и ==
сравнениях с собой.
Я хочу избежать присвоения произвольного значения, такого как int
или какого-либо другого типа, при вероятности того, что выбранное мной значение вступит в конфликт с каким-либо другим.
Я рассматриваю возможность создания экземпляра класса, который использует уникальность значений id()
CPython в любых сравнениях, которые может поддерживать это значение.
С здесь :
If no __cmp__(), __eq__() or __ne__() operation is defined, class instances are compared by object identity (“address”).
Предполагается, что:
MY_CONSTANT = object()
Только когда-либо вернет true в сравнении с MY_CONSTANT
в реализации CPython, если MY_CONSTANT
каким-то образом был собран сборщиком мусора, и что-то еще размещено на его месте во время сравнения (я бы предположил, вероятно, никогда не случится).