Uživatelské nástroje

Nástroje pro tento web


python

Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

Obě strany předchozí revizePředchozí verze
Následující verze
Předchozí verze
python [2019/01/06 10:49] – upraveno mimo DokuWiki 127.0.0.1python [2025/08/28 10:09] (aktuální) – upraveno mimo DokuWiki 127.0.0.1
Řádek 5: Řádek 5:
 <code bash> <code bash>
 #!/usr/bin/env python #!/usr/bin/env python
 +</code>
 +
 +===== 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)
 +</code>
 +
 +  * 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)
 +</code>
 +
 +  * 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,10)
 +</code>
 +
 +===== OOP =====
 +
 +  * třída se definuje klíčovým slovem ''Class''
 +  * 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 ''self'' odkazuje na sebe sama
 +
 +<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,number):
 +    self._count += number
 +'''
 +
 +  # Getter pomoci dekorátoru
 +  @property
 +  def count():
 +    return self._count
 +</code>
 +
 +  * dědičná třída se zapisuje
 +
 +<code python>
 +class MyClass(MyParentClass):
 +
 +  def __init__(self):
 +    super.__init__()
 +</code>
 +
 +  * klíčové slovo ''super'' referencuje nadřazenou třídu
 +  * Vlastní vyjímky se vytváří z třídy Exception
 +  * Klíčové slovo ''pass'' pouze informuje, že se má pokračovat.
 +    * U prázdné třídy/funkce se musí použít, jinak by to hlásilo chybu, že třída nemá žádnou definici.
 +
 +<code python>
 +class MyException(Exception):
 +    pass
 </code> </code>
  
Řádek 23: Řádek 109:
 </code> </code>
  
-   * 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í 
 +  * užitečný příkaz je ls, který vypíše informace o možných položkách
  
 <code python> <code python>
Řádek 31: Řádek 118:
 type       : XShortEnumField      = (0) type       : XShortEnumField      = (0)
 </code> </code>
 +
 +  * příklad vytvoření pcap s VLAN tagem
 +
 +<code python>
 +mypkt2=Ether()/Dot1Q(vlan=42)/IP(dst="1.2.3.4")/Raw("example")
 +sendp(mypkt2, iface="eth0")
 +</code>
 +
 +===== setuptools (setup.py) =====
 +
 +  * vytvoření rpm ([[http://jeromebelleman.gitlab.io/posts/devops/setuppy/|zdroj]])
 +
 +  python setup.py bdist_rpm
 +
 +  * vyrvoření whl ([[https://www.realpythonproject.com/how-to-create-a-wheel-file-for-your-python-package-and-import-it-in-another-project/|zdroj]])
 +
 +  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, připadně setup.py, pokud první neexistuje
  
python.1546768143.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki