Я хотел бы создать класс, который наследует от None
.
Пробовал это:
class InvalidKeyNone(None):
pass
но это дает мне:
TypeError: Error when calling the metaclass bases
cannot create 'NoneType' instances
Каким будет правильное решение, которое даст мне тип, который ведет себя точно так же, как None
, но который я могу набрать тест?
foo = InvalidKeyNone()
print(type(foo))
>>> InvalidKeyNone
[EDIT]
Я хочу сделать это, потому что я создаю схему выбора на Python datastructures:
bar = select(".foo.bar.[1].x", {"foo":{"bar":[{"x":1}, {"x":2}], "baz":3})
print(bar)
>> 2
И я хочу, чтобы определить, получаю ли я None, потому что выбранное значение None или потому что ключ не найден. ОДНАКО, он должен вернуть (ducktyped) None, который ведет себя точно так же, как None. Никакие исключения или пользовательский тип не возвращаются сюда.
[EDIT]
Хорошо, так что консенсус: не может быть сделано. Который, хотя и неудовлетворительный, является верным ответом. Так как я действительно хочу, чтобы поведение по умолчанию заставляло его возвращать None, когда ключ отсутствует, я думаю, что у меня будет выбор, который будет использовать параметр, чтобы переключиться на бросание исключительных ситуаций, когда это необходимо. Спасибо.