[python] scapy was bewirkt die Zuweisung a=_


#1
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?
 

Technipion

Erfahrenes Mitglied
#3
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:
Python:
>>>  sniff(filter="icmp and host 66.35.250.151", count=2)
<Sniffed: UDP:0 TCP:0 ICMP:2 Other:0>
>>>  a=_
>>>  a.nsummary()
0000 Ether / IP / ICMP 192.168.5.21 echo-request 0 / Raw
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:
Python:
>>> 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
 

Neue Beiträge