在python 2.6中,我想这样做:
f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception
这显然不是语法。是否可以执行ifin lambda,如果可以,该怎么做?
谢谢
                
                2
              
                  您不能打印或抬高lambda。Lambda只是函数,您可以始终使用函数代替。
                
                
                  
                    —
                    Lennart Regebro 09年
                    
                  
                
              
                  恕我不能赞同。我需要4个不同的,非常短的函数(例如上面的一个),需要将它们放在列表/字典中,以便我可以对其进行迭代并选择在每次迭代中使用的函数。在迭代之前,我可以将其简化为仅4行init代码,而不是只是init的多行代码。越少越快乐..
                
                
                  
                    —
                    Guy 
                    
                  
                
              
                  当其他人必须阅读,解释,理解和维护代码时,4行代码不是一个值得称赞的解决方案。此外,示例中的“打印/凸起”问题表明了这一点,该问题不能而且不应该在lambda中完成。
                
                
                  
                    —
                    S.Lott 
                    
                  
                
              
                  @LennartRegebro lambdas不是python中的函数,它们只是表达式,这就是为什么您不能使用它们做很多事情的原因。
                
                
                  
                    —
                    亚伦·麦克米林
                    
                  
                
              
                  @AaronMcMillin Lambdas是函数。由于语法原因,它们仅限于表达式,但它们是函数。
                
                
                  
                    —
                    Lennart Regebro '16