お客様dict
を継承します。辞書の(ほぼすべてのコレクションのように)は、それに要素が含まれているかどうかによって異なります。これは、リスト、セット、辞書、および文字列(文字列は、文字の順序付き集合と見なされることがあります)に適用されます。さらに、多くの図書館では、同じルール(カウンターなど)に従ったコレクションがあります。
には、いずれの要素も含まれていない辞書を作成します。したがって真実はFalse
です。
あなたはしかしと、再びtruthinessを上書きすることができます:あなたが根底にある空の辞書と、このようなExample(..)
のtruthinessを見つけるかどうかはを作るためにあなたが持っている決定であることを
class Example(dict):
def __init__(self, name):
self.name = name
def __bool__(self): return True
def get_name(self):
return self.name
注意を自分で(ともちろん、「Pythonのガイドライン」に従う方が良い)。上記のコード部分は、そのものではありません。アプリケーションに合わせて、が適切です。さらに、辞書コンストラクタに無名の引数(*args
)と名前付き引数(**kwargs
)を渡して、__repr__
および/または__str__
の関数を変更するだけでなく、すぐに基礎となる辞書に要素を追加すると便利です。
class Example(dict):
def __init__(self, name,*args,**kwargs):
super().__init__(*args,**kwargs)
self.name = name
def __bool__(self):
return True
def get_name(self):
return self.name
あなたは 'dict'から継承し、空のdictは' False'と評価します。どのようなテストをしようとしていますか?例えば'exがNoneでない場合:'は 'True'と評価されます。 – AChampion