wat is den das?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Koraktor
User
Beiträge: 9
Registriert: Samstag 2. August 2014, 18:32
Kontaktdaten:

Sonntag 8. November 2015, 14:57

ich versuche mich zur zeit in das Thema Wegfindung ein zu arbeiten und fand auf GitHub auch einen Code zu einen A* Algorithm. Trots längerem suchen fand ich nicht heraus was manches zu bedeuten hat, wie dieses hier:

Code: Alles auswählen

current = min(openset, key=lambda o:o.g + o.h)
openset ist ein set() in dem sich 2D Koordinaten in einen Katesischen system befinden.
mit dem rest wirds lustig. Es sind keine regular expressions soviel weiß ich. darum frag ich euch ob mir da einer weiter helfen kann, wenn ihr den ganzen Code graucht (für diese frage glaub ich ist es nicht nötig) ist er hier:

https://gist.github.com/jdp/1687840#file_astar.py

wen mir jemand weiter unter die Arme greifen kann wäre das sehr hilfreich ^^
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Sonntag 8. November 2015, 15:24

Um, das ist eine lambda Funktion: https://docs.python.org/3/tutorial/cont ... expression

Mit einer regulaeren Funktion:

Code: Alles auswählen

def distance(o):
    return o.g + o.h

current = min(openset, key=distance)
Koraktor
User
Beiträge: 9
Registriert: Samstag 2. August 2014, 18:32
Kontaktdaten:

Sonntag 8. November 2015, 17:45

cofi hat geschrieben:Um, das ist eine lambda Funktion: https://docs.python.org/3/tutorial/cont ... expression

Mit einer regulaeren Funktion:

Code: Alles auswählen

def distance(o):
    return o.g + o.h

current = min(openset, key=distance)
jut dan kanst du mir auch sagen was o ist (ich will jetzt keine offensichtlichen sachen wissen wie "das ist eine Variabele"), das mit der Lambda Funktion war hilfreich danke, aber was ist dan noch .g und .h? sie sind nicht zuvor definiert und ich wuste nicht das es in Variabeln funktionen gibt die man damit aufrufen kann.
BlackJack

Sonntag 8. November 2015, 17:59

@Koraktor: `o` ist das Argument das der Funktion übergeben wird. Und zwar von `min()`. Jedes Element aus dem ersten Argument von der `min()`-Funktion, also jedes Element aus `openset`. Und `g` und `h` sind offensichtlich Attribute von diesen Elementen. Um herauszufinden was die bedeuten muss man schauen was für Objekte in `openset` gespeichert sind.
Antworten