<Python>dir()

2017/11/15

dir()をすると、そこにあるメソッド(関数)、クラス、変数 が見れる。

下記で、文字列が持つメソッドが見れる。

In [34]: dir()
Out[34]:
[__add__,
 __class__,
 __contains__,
 __delattr__,
 __dir__,
 __doc__,
 __eq__,
 __format__,
 __ge__,
 __getattribute__,
 __getitem__,
 __getnewargs__,
 __gt__,
 __hash__,
 __init__,
 __iter__,
 __le__,
 __len__,
 __lt__,
 __mod__,
 __mul__,
 __ne__,
 __new__,
 __reduce__,
 __reduce_ex__,
 __repr__,
 __rmod__,
 __rmul__,
 __setattr__,
 __sizeof__,
 __str__,
 __subclasshook__,
 capitalize,
 casefold,
 center,
 count,
 encode,
 endswith,
 expandtabs,
 find,
 format,
 format_map,
 index,
 isalnum,
 isalpha,
 isdecimal,
 isdigit,
 isidentifier,
 islower,
 isnumeric,
 isprintable,
 isspace,
 istitle,
 isupper,
 join,
 ljust,
 lower,
 lstrip,
 maketrans,
 partition,
 replace,
 rfind,
 rindex,
 rjust,
 rpartition,
 rsplit,
 rstrip,
 split,
 splitlines,
 startswith,
 strip,
 swapcase,
 title,
 translate,
 upper,
 zfill]

なるほど、、、

リストだとこうなる。

In [36]: l
Out[36]: [1, 2, 3]

In [37]: dir(l)
Out[37]:
[__add__,
 __class__,
 __contains__,
 __delattr__,
 __delitem__,
 __dir__,
 __doc__,
 __eq__,
 __format__,
 __ge__,
 __getattribute__,
 __getitem__,
 __gt__,
 __hash__,
 __iadd__,
 __imul__,
 __init__,
 __iter__,
 __le__,
 __len__,
 __lt__,
 __mul__,
 __ne__,
 __new__,
 __reduce__,
 __reduce_ex__,
 __repr__,
 __reversed__,
 __rmul__,
 __setattr__,
 __setitem__,
 __sizeof__,
 __str__,
 __subclasshook__,
 append,
 clear,
 copy,
 count,
 extend,
 index,
 insert,
 pop,
 remove,
 reverse,
 sort]

で、、、

In [38]: l.__len__()
Out[38]: 3

In [39]: len(l)
Out[39]: 3

ちゅうことで、組み込み関数lenは、メソッド__len__()を呼び出しているっぽい。

2. Built-in Functions — Python 3.3.6 documentation