From a5ee45f491226d411b7c0f1bc8c8c9d47f62fe00 Mon Sep 17 00:00:00 2001 From: Pavel Tisnovsky Date: Fri, 13 Oct 2023 08:15:50 +0200 Subject: [PATCH] Modern Python: 3rd version --- docs/modern_python.md | 60 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/docs/modern_python.md b/docs/modern_python.md index 3d648dc..749f0d6 100644 --- a/docs/modern_python.md +++ b/docs/modern_python.md @@ -54,7 +54,34 @@ PHP Scala --- -## Statická typová kontrola +## To nejlepší z obou světů? + +* Volitelné typy + +``` +Jazyk Technologie pro statické typy +-------------------------------------------- +JavaScript TypeScript, Flow +Python Mypy, Pyright, Pyre +Ruby Sorbet +``` + +--- + +### Volitelné typy a Python + +* Python je dynamicky typovaný + - a nejsou plány to změnit! +* Typy jsou čistě volitelné + - přidáno do Pythonu 3.5 + - nazvané "type hints" + - (aby to vývojáře nestrašilo) +* Statické typové kontroly + - mypy, pyright, pyre + +--- + +### Statická typová kontrola a Mypy --- @@ -62,6 +89,37 @@ PHP Scala --- +```python +def add(a, b): + return a+b +``` + +* Typ `Any` je přidán automaticky + +--- + +### Typové anotace + +```python +def add(a:int, b:int) -> int: + return a+b +``` + +### `bool` nebo `int`? + +* Viz specifikace Pythonu! + +```python +def add(a:int, b:int) -> int: + return a+b + +print(add(1, 2)) +print(add(1, True)) +print(add(1, False)) +``` + +--- + ## Testování * Základní technologie testování