1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[python] scapy was bewirkt die Zuweisung a=_

Dieses Thema im Forum "CGI, Perl, Python, Ruby, Power Shell" wurde erstellt von Habana, 4. Oktober 2017.

  1. Habana

    Habana Grünschnabel

    Hallo,
    ich verwende eine Drittanbieter Bibliothek namens 'Scapy' und hierbei gibt es eine Zuweisung die
    ich nicht ganz verstehe, nämlich a=_
    a ist eine beliebige variable aber was genau bewirkt die Zuweisung?
    kann mir das jemand sagen und wird das im Standard Python auch verwendet?
     
  2. sheel

    sheel I love Asm Administrator

  3. Technipion

    Technipion Erfahrenes Mitglied

    Hallo Habana,
    in sheels Link ist ja bereits gut erklärt, wofür _ in Python in der Regel benutzt wird. Ein Codeausschnitt wäre natürlich schön gewesen, so musste ich selbst nachschauen um welche Zuweisung genau es sich handelt :rolleyes:...
    Ich gehe davon aus du meinst diese Stelle im Tutorial:
    Code (Python):
    1. >>>  sniff(filter="icmp and host 66.35.250.151", count=2)
    2. <Sniffed: UDP:0 TCP:0 ICMP:2 Other:0>
    3. >>>  a=_
    4. >>>  a.nsummary()
    5. 0000 Ether / IP / ICMP 192.168.5.21 echo-request 0 / Raw
    6. 0001 Ether / IP / ICMP 192.168.5.21 echo-request 0 / Raw
    (Zu finden auf http://www.secdev.org/projects/scapy/demo.html)

    Hier wird genutzt, dass der Python Interpreter das letzte Ergebnis immer als _ speichert (ist wie Ans auf Taschenrechnern). Also zunächst wird gesnifft, ohne das Ergebnis einer bestimmten Variable zuzuweisen, dadurch wird automatisch das Ergebnis ausgegeben. Um dann aber damit weiterarbeiten zu können, wird im nächsten Schritt das vorige Ergebnis der Variablen a zugewiesen. Ich persönlich bin eigentlich kein Freund dieses Stils, da doch noch relativ häufig _ für unbenutzte Variablen anzutreffen ist. Wenn du das Ergebnis eines Calls einer Variable zuweisen möchtest, aber gleichzeitig auch möchtest dass es ausgegeben wird, würde ich eher etwas in diesem Stil machen:
    Code (Python):
    1. >>> a = sniff(filter='icmp and host 66.35.250.151', count=2); a
    Damit wird der Aufruf plus Zuweisung und danach die Ausgabe in einer Zeile durchgeführt. Ist wohl am Ende doch eine reine Geschmackssache.

    Gruß Technipion
     
    sheel gefällt das.
Die Seite wird geladen...