Skip to content

Commit

Permalink
Positional-only parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
tisnik committed Oct 16, 2023
1 parent 95595e0 commit 25b15f6
Showing 1 changed file with 96 additions and 9 deletions.
105 changes: 96 additions & 9 deletions docs/modern_python.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,26 +182,88 @@ print(f"Zpráva pro vás: '{x.capitalize()}'")

### Poziční parametry funkcí

* Běžně deklarovaná funkce

```python
def foo(x, y, z):
return x+y-z


print(foo(1, 2, 10))
print(foo(x=1, y=2, z=10))
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//positional-params-1.py)

---

## Podpora pro asynchronní programování
### Poziční parametry funkcí

* Postupně přidáno v Pythonu 3.6 a 3.7
* Nová klíčová slova `async` a `await`
* Parametry lze pojmenovat a předat v jiném pořadí

```python
def foo(x, y, z):
return x+y-z


print(foo(1, 2, 10))
print(foo(z=1, y=2, x=10))
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//positional-params-2.py)

---

## Poziční parametry funkcí
### Poziční parametry funkcí

* Přidáno do Pythonu 3.8
* Umožňují rozlišit parametry, které lze zapsat jen pozičně
* Ostatní parametry buď pozičně nebo je lze pojmenovat
* Všechny parametry jsou čistě poziční

```python
def foo(x, y, z, /):
return x+y-z


print(foo(1, 2, 10))
print(foo(z=1, y=2, x=10))
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//positional-params-3.py)

---

## Mroží operátor
### Poziční parametry funkcí

* Přidáno do Pythonu 3.8
* První parametr je čistě poziční

```python
def foo(x, /, y, z):
return x+y-z


print(foo(1, 2, 10))
print(foo(1, z=1, y=2))
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//positional-params-4.py)

---

### Poziční parametry funkcí

* Kombinace s pojmenovanými parametry

```python
def foo(x=0, /, y=0, z=0):
return x+y-z


print(foo())
print(foo(10))
print(foo(1, 2, 10))
print(foo(1, z=1, y=2))
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//positional-params-5.py)

---

Expand All @@ -211,6 +273,23 @@ print(f"Zpráva pro vás: '{x.capitalize()}'")

---

## Mroží operátor

* Přidáno do Pythonu 3.8

---

## Podpora pro asynchronní programování

* Postupně přidáno v Pythonu 3.6 a 3.7
* Nová klíčová slova `async` a `await`

---

## Skupiny výjimek

---

## Deklarace datových typů

* Přidáváno postupně
Expand Down Expand Up @@ -293,17 +372,23 @@ def add(a, b):
return a+b
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//mypy-add-1.py)

* Typ `Any` je přidán automaticky

---

### Typové anotace

* specifikují se za dvojtečkou

```python
def add(a:int, b:int) -> int:
return a+b
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//mypy-add-2.py)

### `bool` nebo `int`?

* Viz specifikace Pythonu!
Expand All @@ -317,6 +402,8 @@ print(add(1, True))
print(add(1, False))
```

[Zdrojový kód příkladu](https://github.com/tisnik/most-popular-python-libs/blob/master/modern_python/sources//mypy-add-3.py)

---

# Novinky v ekosystému Pythonu
Expand Down

0 comments on commit 25b15f6

Please sign in to comment.