Seite 1 von 1

wat is den das?

Verfasst: Sonntag 8. November 2015, 14:57
von Koraktor
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 ^^

Re: wat is den das?

Verfasst: Sonntag 8. November 2015, 15:24
von cofi
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)

Re: wat is den das?

Verfasst: Sonntag 8. November 2015, 17:45
von Koraktor
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.

Re: wat is den das?

Verfasst: Sonntag 8. November 2015, 17:59
von BlackJack
@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.