Python 中的可选链接

新手上路,请多包涵

在 JavaScript 中,如果我不确定链中的每个元素是否存在/是否未定义,我可以做 foo?.bar ,如果 bar 不存在于 foo ,解释器会默默地短路它,不会抛出错误。

Python中有类似的东西吗?现在,我一直这样做:

 if foo and foo.bar and foo.bar.baz:
    # do something

我的直觉告诉我,这不是检查链中每个元素是否存在的最佳方法。有没有更优雅/Pythonic 的方式来做到这一点?

原文由 Xeoth 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 557
1 个回答

如果它是一本字典,你可以使用 get(keyname, value)

 {'foo': {'bar': 'baz'}}.get('foo', {}).get('bar')

原文由 Aliaksandr Sushkevich 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏