Python 3.X (hanya) juga menggeneralisasikan definisi fungsi untuk memungkinkan argumen dan mengembalikan nilai yang akan dianotasi dengan nilai objek
untuk digunakan dalam ekstensi .
Its META-data untuk menjelaskan, lebih eksplisit tentang nilai-nilai fungsi.
Anotasi dikodekan sebagai :value
setelah nama argumen dan sebelum default, dan sebagai ->value
setelah daftar argumen.
Mereka dikumpulkan menjadi __annotations__
atribut fungsi, tetapi tidak diperlakukan sebagai istimewa oleh Python itu sendiri:
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
Sumber: Referensi Saku Python, Edisi Kelima
CONTOH:
The typeannotations
modul menyediakan satu set alat untuk memeriksa jenis dan tipe inferensi kode Python. Ini juga menyediakan serangkaian jenis yang berguna untuk menjelaskan fungsi dan objek.
Alat-alat ini terutama dirancang untuk digunakan oleh analis statis seperti linter, librari pelengkap kode dan IDE. Selain itu, dekorator untuk melakukan pemeriksaan run-time disediakan. Pemeriksaan jenis run-time tidak selalu merupakan ide yang baik dengan Python, tetapi dalam beberapa kasus ini bisa sangat berguna.
https://github.com/ceronman/typeannotations
Bagaimana Mengetik Membantu Menulis Kode Lebih Baik
Mengetik dapat membantu Anda melakukan analisis kode statis untuk mengetahui kesalahan ketik sebelum mengirim kode ke produksi dan mencegah Anda dari beberapa bug yang jelas. Ada alat seperti mypy, yang dapat Anda tambahkan ke kotak alat Anda sebagai bagian dari siklus hidup perangkat lunak Anda. mypy dapat memeriksa tipe yang benar dengan menjalankan basis kode Anda sebagian atau sepenuhnya. mypy juga membantu Anda mendeteksi bug seperti memeriksa tipe None ketika nilainya dikembalikan dari suatu fungsi. Mengetik membantu membuat kode Anda lebih bersih. Alih-alih mendokumentasikan kode Anda menggunakan komentar, tempat Anda menentukan jenis dalam dokumen, Anda dapat menggunakan jenis tanpa biaya kinerja.
Bersihkan Python: Pengkodean Elegan dalam Python ISBN: ISBN-13 (pbk): 978-1-4842-4877-5
PEP 526 - Sintaks untuk Anotasi Variabel
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html