Er arr.__len__() den foretrukne måde at få længden af et array på i Python?
I Python, er følgende den eneste måde at få antallet af elementer på?
arr.__len__()
Hvis ja, hvorfor så den mærkelige syntaks?
702
3
Det samme gælder for tupler:
Og strings, som i virkeligheden bare er arrays af tegn:
Det blev [bevidst gjort på denne måde] (http://effbot.org/pyfaq/why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list.htm), så lister, tupler og andre containertyper ikke alle eksplicit skulle implementere en offentlig
.length()
-metode, men at man i stedet bare kan kontrollerelen()
af alt, der implementerer den magiske__len__()
-metode.Det kan virke overflødigt, men implementeringer af længdekontrol kan variere betydeligt, selv inden for det samme sprog. Det er ikke ualmindeligt at se en samlingstype bruge en
.length()
-metode, mens en anden type bruger en.length
-egenskab, mens endnu en anden bruger.count()
. Et nøgleord på sprogniveau gør det muligt at ensrette indgangspunktet for alle disse typer. Så selv objekter, som du måske ikke anser for at være lister af elementer, kan stadigvæk længdekontrolleres. Dette omfatter strenge, køer, træer osv.Den funktionelle karakter af
len()
egner sig også godt til funktionelle programmeringsstile.Den foretrukne måde at få længden af et python-objekt på er at sende det som et argument til funktionen
len
. Internt vil python derefter forsøge at kalde den specielle__len__
-metode for det objekt, der blev overdraget.Du skal blot bruge
len(arr)
: