-≫ Python fonksiyon tanımları ne anlama geliyor?
Son zamanlarda Python 3.3 grammar specification bakarken ilginç bir şey fark ettim:
funcdef: 'def' NAME parameters ['->' test] ':' suite
İsteğe bağlı 'ok' blok Python 2'de yoktu ve herhangi bir bilgi Python 3 anlamı ile ilgili bulamadım. Bu belki de doğru olduğu ortaya çıktı ve tercüman tarafından kabul edildi:
def f(x) -> 123: return x
Bu önkoşul bir sözdizimi bir tür, ama olabileceğini düşündüm
- Ben buraya x test, hala tanımlanmamış, at
- Oku sonra koydum ne olursa olsun (örneğin 2 < 1) işlevi davranış. etkilemez
Herkes bu sözdizimi ile alışık bunu açıklayabilir mi?
CEVAP
Daha ayrıntılı olarak, 2 Python.x nesne türleri için meta verileri bir dize eklemek için izin docstrings vardır. Bu inanılmaz kullanışlı, Python 3 fonksiyonları, parametreleri ve dönüş değerleri açıklayan meta veri eklemek için izin vererek bu özelliği uzanır.
Önyargılı kullanma durumu yok, ama MORAL verici birkaç öneriyor. Çok kullanışlı bir bir beklediğin çeşitleri ile parametreleri açıklamak için izin ver; o zaman bu açıklamaları doğrular veya doğru tür bağımsız değişkenler için zorlayan bir dekoratör yazmak kolay olurdu. Başka bir Fibonacci sayıları içine kodlama yerine parametre özgü belgelerine izin vermektir.