在斯威夫特我能做到var?.prop
.这导致nil
,如果var
是nil
,否则将导致价值prop
的财产var
.
同样地,我可以做var >>= prop
在Haskell,这给了我None
是var
IS None
,否则它给我应用的价值prop
里面的值var
(裹Just
).
Python中有相应的东西吗?
其他答案在建议条件表达式的正确轨道上,但在如何做到这一点上是错误的.你可以这样做:
None if var is None else var.prop
或者,等效地
var.prop if var is not None else None
有一个关于向Python添加这样一个特性的PEP草案,并且已经在Python-ideas邮件列表上对它进行了讨论.它似乎不会在不久的将来添加(如果有的话),但阅读PEP将让您了解一些现有的和提出的处理方法.