python
Toto je starší verze dokumentu!
Python
- hlavička má být něco takového
#!/usr/bin/env python
Funkce
- funkce s parametry
# 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)
- anonymní funkce
# 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)
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
selfodkazuje na sebe sama
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
- dědičná třída se zapisuje
class MyClass(MyParentClass): def __init__(self): super.__init__()
- klíčové slovo
superreferencuje nadřazenou třídu - Vlastní vyjímky se vytváří z třídy Exception
- Klíčové slovo
passpouze 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.
class MyException(Exception): pass
Scapy
- odeslání jednoduchého paketu (zdroj)
from scapy.all import * pkt = Ether()/IP() // vytvoří objekt, dvě vrstvy: Ethernet, TCP pkt[Ether].src = my_mac pkt[Ether].dst = "ff:ff:ff:ff:ff:ff" pkt[IP].src = "192.168.1.100" pkt[IP].dst = "192.168.1.255" sendp(pkt)
- užitečný příkaz je ls, který vypíše informace o možných položkách
>>> ls(Ether) dst : DestMACField = (None) src : SourceMACField = (None) type : XShortEnumField = (0)
python.1621534119.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)
