Dive into Python numaralı telefondan python'un special class methods numaralı telefonunu okuyordum ve bazı yöntemlerin garip veya tutarsız bir sözdizimine sahip gibi görünüyor. Python sözdizimi tutarsızlığı?
Eğerlen()
arayıp sözlük olarak birlikte tedarik edecek bu sözlükte tuşların sayısını belirlemek için, Ancak Sözlük sınıf yöntemi öğeleri()
>>> my_dictionary.items()
[('name', 'Old Gregg'), ('Race', 'Scaly Man-Fish')]
çağırır bir sözlükten öğeleri almak için tartışma.
>>> len(my_dictionary)
2
Hep len()
gibi yöntemler ne olursa olsun sınıfın aslında parçası olmadığını farz onların sözdizimi verilen üzerinde ama len()
aslında bir sözlük yöntem yüklenebileceği olmadığını görmek için Python içine Dive bölüm 5 okuduktan sonra bunları denilen aradı.
my_dictionary.__len__()
Öyleyse neden böyle bir yöntem normal bir yöntem gibi değil?
my_dictionary.len()
Bilinmeyen bir kural var mı?
Şimdiye kadar aldığım en hızlı cevap. Teşekkürler bayım. –
/F'nin bu bağlantıdaki kendi açıklamasının ikinci kısmı da kavrayıcıdır. Birçok yerleşik, sınıfların sunabileceği * diğer arayüzler * açısından varsayılan uygulamalara sahiptir. Yani iter (x), örneğin, ilk olarak x .__ iter __() 'yi dener, fakat aynı zamanda x .__ len __()' ve 'x .__ getitem __ (i)' terimini de içerir. – ncoghlan