Python では、オブジェクトのメソッドlen
を呼び出してコレクションの長さを取得する関数です。__len__
def len(x):
return x.__len__()
__len__()
したがって、 の直接呼び出しは、少なくとも と同じくらい高速であると予想されlen()
ます。
import timeit
setup = '''
'''
print (timeit.Timer('a="12345"; x=a.__len__()', setup=setup).repeat(10))
print (timeit.Timer('a="12345"; x=len(a)', setup=setup).repeat(10))
しかし、上記のコードでテストした結果は、より高速であることが示さlen()
れています。なんで?