En passant une fonction comme argument en Python, je voulais passer une expression lambda lors de l'écriture d'une fonction, mais en Python2, l'impression n'est pas une expression mais une instruction, donc je ne peux pas la mettre dans une expression lambda. fait. Donc, importez le module \ _ \ future_ et modifiez-le d'une instruction d'impression à une expression d'impression, tout comme Python3.
#Ne peut pas être défini dans Python 2(Parce que l'impression est une déclaration)
# a = lambda: print "hoge"
#Peut être défini en Python 3(Parce que l'impression est une expression)
a = lambda: print("hoge")
#Comment définir en Python2
from __future__ import print_function
a = lambda: print("hoge")
Cependant, le problème est que vous devez changer tout __print "hogehoge" en print ("hogehoge") __. Lorsque vous l'utilisez en Python2, il est préférable de le limiter à une utilisation limitée, comme l'importer dans une méthode.
appendix
Action<string> act = (string x) =>
{
if(x == "hoge") Console.WriteLine(x);
else Console.WriteLine("Sauf pour hoge");
}
a = lambda: 5 #Expression Lambda qui renvoie 5
Il semble que vous puissiez écrire avec.
Recommended Posts