Flo*_*ian 3 python variables if-statement
是否有一种聪明的方法可以在三行或四行中编写以下代码?
a=l["artist"]
if a:
b=a["projects"]
if b:
c=b["project"]
if c:
print c
Run Code Online (Sandbox Code Playgroud)
所以我想像伪代码一样:
a = l["artist"] if True:
Run Code Online (Sandbox Code Playgroud)
怎么样:
try:
print l["artist"]["projects"]["project"]
except KeyError:
pass
except TypeError:
pass # None["key"] raises TypeError.
Run Code Online (Sandbox Code Playgroud)
这将try到print的价值,但如果KeyError上升时,except块将被运行.pass意味着什么也不做.这是已知的,EAFP:这是ê asier到一个 SK ˚F orgiveness比P ermission.
我不一定认为这更好但你可以这样做:
try:
c = l["artist"]["projects"]["project"]
except (KeyError, TypeError) as e:
print e
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
340 次 |
| 最近记录: |