[英]If expression variables inside if block
這是一個常見的成語:
if foo.get("bar"):
bar = foo.get("bar")
# DO something with bar
相反,我想說類似的話
if foo.get("bar") as bar:
# DO something with bar
在 Python 中有什么方法可以這么說嗎?
不,那里沒有。
bar = foo.get('bar')
if bar:
...
del bar
沒有這樣的語法,沒有。 對於字典,您通常會改用成員資格測試:
if 'bar' in foo:
bar = foo['bar']
if foo.get('bar')
這樣做,這是大多數 Python if foo.get('bar')
想法,但空值(例如{'bar': 0}
)在這里也為假。
對於您確實想要跳過缺少的鍵和空值的邊緣情況,您可以使用.get()
once :
bar = foo.get('bar')
if bar:
#
如果您無論如何都要將值存儲在局部變量中,后者可能更可取,但您要測試is not None
以允許其他虛假值:
bar = foo.get('bar')
if bar is not None:
#
沒有必要調用.get()
兩次,當然不是當您已經確定'bar'
鍵存在時。
這有點黑客,但這是有效的。
In [17]: if [bar for bar in [foo.get('bar')] if bar]:
....: print bar
在python3中不起作用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.