Uživatelské nástroje

Nástroje pro tento web


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 self odkazuje 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 super referencuje nadřazenou třídu
  • Vlastní vyjímky se vytváří z třídy Exception
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.1621534045.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki