在 Ruby 中,如果你想有条件地设置变量的值,你可以这样做:
foo = myhash[ "bar" ] || myhash[ "baz" ]
如果 foo 存在,它会将其值设置为 myhash[ "bar" ],否则会将 foo 设置为 myhash["baz" ]。如果两者都不存在,它会将 foo 设置为 nil。
在 Python 中,如果你尝试这种类型的赋值,你会得到一个语法错误。此外,Python 将在 myhash["baz"] 上抛出 KeyError,而不是将其设置为 None。在我看来,在 Python 中有条件地设置 foo 的唯一方法是编写一个大的多行条件语句,但我真的很想像 Ruby 那样在一行中执行此操作。有没有办法做到这一点?