16

を継承するクラスを作りたいと思っていますNone

これを試しました:

class InvalidKeyNone(None):
    pass

しかし、それは私に与えます:

TypeError: Error when calling the metaclass bases
    cannot create 'NoneType' instances

Noneまったく同じように動作するが、テストを入力できる型を与える正しい解決策は何ですか?

foo = InvalidKeyNone()
print(type(foo))
>>> InvalidKeyNone

[編集]

Python データ構造で選択スキームを作成しているため、これを実行したいと考えています。

bar = select(".foo.bar.[1].x", {"foo":{"bar":[{"x":1}, {"x":2}], "baz":3})
print(bar)
>> 2

そして、選択した値が None であるため、またはキーが見つからなかったために None を取得するかどうかを判断できるようにしたいと考えています。ただし、None とまったく同じように動作する (ducktyped) None を返す必要があります。例外やカスタム タイプはここに返されません。

[編集]

わかりましたので、コンセンサスは次のとおりです。実行できません。これは不十分ですが、有効な答えです。キーが存在しないときにデフォルトの動作で None を返すようにしたいので、必要に応じて例外スローに切り替えるために、select に param を食べさせると思います。ありがとう。

4

3 に答える 3