python
Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| Následující verze | Předchozí verze | ||
| python [2016/10/21 15:26] – vytvořeno djbuldog | python [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 5: | Řádek 5: | ||
| <code bash> | <code bash> | ||
| # | # | ||
| + | </ | ||
| + | |||
| + | ===== Funkce ===== | ||
| + | |||
| + | * funkce s parametry | ||
| + | |||
| + | <code python> | ||
| + | # Příklad funkce s return annotation (říká, co by to vracet mělo) | ||
| + | def add(first, second) -> int: | ||
| + | return first+second | ||
| + | |||
| + | # Volání funkce | ||
| + | add(5,10) | ||
| + | </ | ||
| + | |||
| + | * default hodnoty parametru a specifikování typu | ||
| + | |||
| + | <code python> | ||
| + | def add(first: int = 5, second: int = 10) -> int: | ||
| + | return first+second | ||
| + | |||
| + | add() | ||
| + | add(second=6) | ||
| + | </ | ||
| + | |||
| + | * anonymní funkce | ||
| + | |||
| + | <code python> | ||
| + | # Uložení reference na funkci | ||
| + | add = lambda first, second: first+second | ||
| + | |||
| + | # Volání funkce | ||
| + | add(5,10) | ||
| + | |||
| + | # Definice a přímé použití | ||
| + | (lambda first, second: first+second)(5, | ||
| + | </ | ||
| + | |||
| + | ===== OOP ===== | ||
| + | |||
| + | * třída se definuje klíčovým slovem '' | ||
| + | * metody třídy se zapisují jako normální funkce | ||
| + | * Python nepodporuje privátní proměnné, symbolicky se zapisuje podržítkem na začátku | ||
| + | * klíčové slovo '' | ||
| + | |||
| + | <code python> | ||
| + | class MyClass(): | ||
| + | |||
| + | # Konstruktor | ||
| + | def __init__(self): | ||
| + | self._count = 0 | ||
| + | |||
| + | # Metoda tridy | ||
| + | @classmethod | ||
| + | def add(number): | ||
| + | _count += number | ||
| + | |||
| + | # Ekvivalentni zapis bez pouziti dekoratoru | ||
| + | ''' | ||
| + | def add(self, | ||
| + | self._count += number | ||
| + | ''' | ||
| + | |||
| + | # Getter pomoci dekorátoru | ||
| + | @property | ||
| + | def count(): | ||
| + | return self._count | ||
| + | </ | ||
| + | |||
| + | * dědičná třída se zapisuje | ||
| + | |||
| + | <code python> | ||
| + | class MyClass(MyParentClass): | ||
| + | |||
| + | def __init__(self): | ||
| + | super.__init__() | ||
| + | </ | ||
| + | |||
| + | * klíčové slovo '' | ||
| + | * Vlastní vyjímky se vytváří z třídy Exception | ||
| + | * Klíčové slovo '' | ||
| + | * U prázdné třídy/ | ||
| + | |||
| + | <code python> | ||
| + | class MyException(Exception): | ||
| + | pass | ||
| </ | </ | ||
| Řádek 23: | Řádek 109: | ||
| </ | </ | ||
| - | * užitečný příkaz je ls, který vypíše informace o možných položkách | + | * scapy má i přímo cli, pro jednoduší zkoušení |
| + | | ||
| <code python> | <code python> | ||
| Řádek 31: | Řádek 118: | ||
| type : XShortEnumField | type : XShortEnumField | ||
| </ | </ | ||
| + | |||
| + | * příklad vytvoření pcap s VLAN tagem | ||
| + | |||
| + | <code python> | ||
| + | mypkt2=Ether()/ | ||
| + | sendp(mypkt2, | ||
| + | </ | ||
| + | |||
| + | ===== setuptools (setup.py) ===== | ||
| + | |||
| + | * vytvoření rpm ([[http:// | ||
| + | |||
| + | python setup.py bdist_rpm | ||
| + | |||
| + | * vyrvoření whl ([[https:// | ||
| + | |||
| + | python setup.py bdist_wheel | ||
| + | |||
| + | * whl by se už nemělo vytvářet přes setup.py, jde o deprecated volbu | ||
| + | * mělo by být nahrazeno: | ||
| + | |||
| + | pip wheel . | ||
| + | |||
| + | * nebo | ||
| + | |||
| + | python -m build --wheel | ||
| + | |||
| + | * který čte pyproject.toml, | ||
python.1477056365.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
