<Python> 組み込み関数

文字列でdir()すると、__contains__()がある。

In [11]: dir('')
Out[11]:
['__add__',
 '__class__',
 '__contains__',
 '__delattr__',
:

ふーんと眺めていたら、”はた”とひらめいた。 

In [13]: 'aaa'.__contains__('aaa')
Out[13]: True

In [14]: 'aaa'.__contains__('bbb')
Out[14]: False

In [15]: 'aaa' in 'aaa'
Out[15]: True

In [16]: 'bbb' in 'aaa'
Out[16]: False

selfの関数は、if文で評価できるものらしい。。。 intの場合、、、

In [25]: a = 2

In [26]: type(a)
Out[26]: int

In [27]: dir(a)
Out[27]:
['__abs__',
 '__add__',
 '__and__',
 '__bool__',
 '__ceil__',
 '__class__',
 '__delattr__',
 '__dir__',
 '__divmod__',
 '__doc__',
 '__eq__',
 '__float__',
 '__floor__',
 '__floordiv__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getnewargs__',
 '__gt__',
 '__hash__',
 '__index__',
 '__init__',
 '__int__',
 '__invert__',
 '__le__',
 '__lshift__',
 '__lt__',
 '__mod__',
 '__mul__',
 '__ne__',
 '__neg__',
 '__new__',
 '__or__',
 '__pos__',
 '__pow__',
 '__radd__',
 '__rand__',
 '__rdivmod__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__rfloordiv__',
 '__rlshift__',
 '__rmod__',
 '__rmul__',
 '__ror__',
 '__round__',
 '__rpow__',
 '__rrshift__',
 '__rshift__',
 '__rsub__',
 '__rtruediv__',
 '__rxor__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__sub__',
 '__subclasshook__',
 '__truediv__',
 '__trunc__',
 '__xor__',
 'bit_length',
 'conjugate',
 'denominator',
 'from_bytes',
 'imag',
 'numerator',
 'real',
 'to_bytes']

で、Selfの関数だと、、

In [28]: a > 3
Out[28]: False

In [29]: a < 3
Out[29]: True

In [30]: a.__gt__(3)
Out[30]: False

In [31]: a.__lt__(3)
Out[31]: True

なるへそ。。。