Python 3.X (yalnızca), bağımsız değişkenlerin ve dönüş değerlerinin uzantılarda kullanılmak üzere nesne değerleriyle açıklanmasına izin vermek için işlev tanımını genelleştirir
.
META verilerini açıklamak, fonksiyon değerleri hakkında daha açık olmak.
Ek açıklamalar :value
bağımsız değişken adından sonra ve varsayılandan önce ->value
ve bağımsız değişken listesinden sonra olduğu gibi kodlanır .
Bunlar __annotations__
işlevin bir niteliğinde toplanır , ancak başka türlü Python tarafından özel olarak ele alınmazlar:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Kaynak: Python Cep Referansı, Beşinci Baskı
MİSAL:
typeannotations
Modül tür denetimi ve Python kodunun tür kesmesi için bir araç kümesi sağlar. Ayrıca, işlevlere ve nesnelere açıklama eklemek için kullanışlı bir dizi tür sağlar.
Bu araçlar temel olarak linter, kod tamamlama kütüphanesi ve IDE gibi statik analizörler tarafından kullanılmak üzere tasarlanmıştır. Ayrıca, çalışma zamanı denetimleri yapmak için dekoratörler de sağlanır. Çalışma zamanı türü denetimi Python'da her zaman iyi bir fikir değildir, ancak bazı durumlarda çok yararlı olabilir.
https://github.com/ceronman/typeannotations
Yazma Daha İyi Kod Yazmaya Nasıl Yardımcı Olur
Yazma, kodunuzu üretime göndermeden ve bazı açık hatalardan kaçınmadan önce tür hatalarını yakalamak için statik kod analizi yapmanıza yardımcı olabilir. Mypy gibi, yazılım yaşam döngünüzün bir parçası olarak araç kutunuza ekleyebileceğiniz araçlar vardır. mypy, kod tabanınıza kısmen veya tamamen çalışarak doğru türleri denetleyebilir. mypy ayrıca, değer bir işlevden döndürüldüğünde Hiçbiri türünü denetleme gibi hataları algılamanıza yardımcı olur. Yazmak, kodunuzu daha temiz hale getirmenize yardımcı olur. Bir doktora türünü belirttiğiniz yorumları kullanarak kodunuzu belgelemek yerine, herhangi bir performans maliyeti olmadan türleri kullanabilirsiniz.
Temiz Python: Python'da Zarif Kodlama ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Değişken Ek Açıklamalar için Sözdizimi
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html