Neden bir Python dizeleri't dize uzunluğu bir yöntem yok var mı?
Bir python dize boyutunu belirlemek için kullanılan len()
bir işlevi olduğunu biliyorum, ama dize değil, bir yöntem, bir nesne neden merak ediyordum.
Güncelleme
Tamam, beni utandıracak kadar yanlış olduğunu fark ettim. __len__()
aslında bir string nesnesi bir yöntemdir. Sadece Python nesne yönelimli kod görmek garip string nesneleri uzunluk fonksiyonu gibi görünüyor. Ayrıca, aynı zamanda garip sadece len yerine adı olarak __len__
.
CEVAP
Dizeleri uzunluğu bir yöntem var: __len__()
Protokolde Python olduğu için bu yöntemi uygulamak nesneleri olan bir uzunluk ve kullanımı yerleşik len()
fonksiyon, aramaları için, benzer şekilde olur uygulamak __iter__()
ve yerleşik iter()
fonksiyon (ya da yöntemi olarak adlandırılan sahne arkası için) nesneleri olan iterable.
Daha fazla bilgi için Emulating container types bkz.
Burada Python protokolleri konusunda iyi bir okuma var: Python and the Principle of Least Astonishment
Python alt yöntem içeren bir dize var ...
Python katılın, neden dize.liste yerin...
Neden Python karşılaştırma dizeleri ku...
Neden bu dize uzunluğu daha fazla kara...
Boşluk -- koruyarak alıntı dizeleri bi...