Derzeit in Python, ein Parameter der Funktion und Rückgabetypen Typ wie folgt angedeutet sein kann:Ist es möglich, eine Lambda-Funktion anzugeben?
def func(var1: str, var2: str) -> int:
return var1.index(var2)
was darauf hindeutet, dass die Funktion zwei Strings nimmt und gibt eine ganze Zahl ist.
Allerdings ist diese Syntax sehr verwirrend mit Lambda-Ausdrücke, die wie folgt aussehen:
func = lambda var1, var2: var1.index(var2)
Ich habe versucht, in Art Hinweise auf beiden Parameter setzen und Return-Typen, und ich kann nicht einen Weg finden, dass verursacht keinen Syntaxfehler.
Ist es möglich, eine Lambda-Funktion einzugeben? Wenn nicht, gibt es Pläne für Typ-Hint-Lambdas oder irgendeinen Grund (außer dem offensichtlichen Syntaxkonflikt) warum nicht?
Ich denke, dass der üblicher Anwendungsfall für ein Lambda innerhalb einer anderen Funktion verschachtelt ist (mit regulären Funktionen gegenüber, die an einer Stelle definiert und aufgerufen Irgendwo ganz anders). Wenn Sie die Typen in dieser Funktion bereits kennen, sollte es (im Prinzip) ziemlich einfach sein, herauszufinden, welche Typen dieses Lambda erhalten wird. Außerdem würde das Ändern der Syntax für die Unterstützung von Anmerkungen dazu führen, dass Ihr Lambda _harder_ gelesen wird. – mgilson