Python'un ördek-yazma kavramının farkında olsam da, bazen işlevlerin argümanlarının türü veya işlevin dönüş değerinin türü ile mücadele ediyorum.
Şimdi, işlevi kendim yazarsam, türleri bilirim. Peki ya biri benim işlevlerimi kullanmak ve çağırmak isterse, türleri bilmesi nasıl beklenir? Genellikle tür bilgilerini işlevin belge dizesine koyarım (örneğin: "...the id argument should be an integer..."ve "... the function will return a (string, [integer]) tuple.")
Ama dokümandaki bilgiye bakmak (ve onu kodlayıcı olarak oraya koymak) gerçekten yapılması gerektiği gibi mi?
Düzenleme: Cevapların çoğu "evet, belge!" Bunun "karmaşık" tipler için her zaman çok kolay olmadığını düşünüyorum.
Örneğin: bir dokümantasyon dizesinde, bir işlevin formun her bir demetiyle (düğüm_kimliği, düğüm_adı, çalışma_dakika) bir demet listesi döndürdüğünü ve öğelerin sırasıyla bir dizge, dizge ve tamsayı olduğunu kısaca nasıl açıklayabilirim ?
Docstring PEP dokümantasyonu bu konuda herhangi bir talimat vermez.
Sanırım karşı argüman, bu durumda sınıfların kullanılması gerektiğidir, ancak python'u çok esnek buluyorum çünkü bu şeyleri listeler ve tuple kullanarak, yani sınıflar olmadan geçmeye izin veriyor .