Is arr.__len__() the preferred way to get the length of an array in Python?

前端 未结 8 1022
悲哀的现实
悲哀的现实 2020-12-04 05:18

In Python, is the following the only way to get the number of elements?

arr.__len__()

If so, why the strange syntax?

8条回答
  •  囚心锁ツ
    2020-12-04 05:45

    The way you take a length of anything for which that makes sense (a list, dictionary, tuple, string, ...) is to call len on it.

    l = [1,2,3,4]
    s = 'abcde'
    len(l) #returns 4
    len(s) #returns 5
    

    The reason for the "strange" syntax is that internally python translates len(object) into object.__len__(). This applies to any object. So, if you are defining some class and it makes sense for it to have a length, just define a __len__() method on it and then one can call len on those instances.

提交回复
热议问题