【发布时间】:2011-03-21 21:17:17
【问题描述】:
Python 中的字典有一个非常好的方法get:
# m is some dict
m.get(k,v) # if m[k] exists, returns that, otherwise returns v
有什么方法可以为任何价值做到这一点吗?例如,在 Perl 中我可以这样做:
return $some_var or "some_var doesn't exist."
【问题讨论】:
-
我的错误,由于某种原因,这对我的班级不起作用。投票结束,回想起来这似乎很明显。
-
作为答案说明,您可以在 Python 中像这样使用 or 运算符。但我很好奇:人们通常认为这个成语 Pythonic 吗?我个人没有在 Python 代码中看到它,但我在 Perl 代码中到处都能看到它。
-
return声明并没有按照您的想法执行。见stackoverflow.com/questions/1512547/… -
您的 Perl 代码错误。 “或”的优先级较低。它将最终等同于
return($some_var) or "some_var doesn't exist"。因此,您想要:return $some_var || "some_var doesn't exist"或从 Perl 5.10 开始使用定义或:return $some_var // "some_var doesn't exist"。当然,您总是可以使用括号使事情更清楚:return($some_var // "some_var doesn't exist")
标签: python perl coding-style