《25》帰属:メソッド __contains__
‖記事一覧‖
実録:はじめてのプログラミング《Python3.1》
帰属:メソッド __contains__
《著》小粒ちゃん+α《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
帰属:メソッド __contains__
組み込み型 list と同様に、演算子 in を利用して要素が含まれるかを判定できると便利です。すると、
def ex___contains__(): X = 's = myList("ABC"); s' print(">>>",X) eval(compile(X,"","single")) for e in "AB@": X = "{0!r} in s".format(e) print(">>>",X) print(eval(X)) >>> ex___contains__() >>> s = myList("ABC"); s ['A', 'B', 'C'] >>> 'A' in s True >>> 'B' in s True >>> '@' in s False
演算子 in を利用して、各要素が連結リストに含まれるかを判定できます。
class myList(object): ... def __contains__(self, value): for e in self: if e==value: return True return False
メソッド __contains__ は、演算子 in に呼応して、シーケンス内の要素かどうかを判定します。for に続く制御変数 e が、指定した引数 value と同じ値になるとき、真を表わす True をリターン値にします。同じ値が見つからないなら、偽を表わす False をリターン値にします。また、次のことから、
>>> s = myList("ABC"); s ['A', 'B', 'C'] >>> "A" in s True >>> s.__contains__("A") True
メソッド __contains__ が、演算子 in と同等の表現になるのが分かります。