【发布时间】:2012-10-23 22:21:55
【问题描述】:
我正在尝试以一种功能性的方式编写一个 python 函数。问题是我不知道如何将 if 条件转换为功能样式。我有两个变量:A 和 C,我想检查以下条件:
def function():
if(A==0): return 0
elif(C!=0): return 0
elif(A > 4): return 0
else: someOtherFunction()
我查看了lambda shortcircuiting,但无法正常工作。
提前感谢您的帮助!
【问题讨论】:
-
返回
0表示失败是一种非常糟糕的做法。我建议你要么抛出异常(最好),或者在最坏的情况下,返回None。 -
我可能是唯一的一个,但这个问题对我来说绝对没有意义。
-
我遇到的问题是 Python 不是 一种纯函数式语言,因此不应像使用它一样使用它。 Python 有函数式的方面,这对于某些任务来说非常棒,但是对于像这样的任务,命令式的风格更加清晰和容易,所以使用它。
-
可以在一行中完成:“return 0 if A == 0 else (0 if C != 0 else (0 if A > 4 else someOtherFunction()))”缺少可读性。
标签: python lambda functional-programming conditional-statements