2024-06-07 14:02:54 发布
网友
我偶然发现了this一段明显可怕的代码:
def determine_db_name(): if wallet_name in "": return "wallet.dat" else: return wallet_name
什么是if xx in "":的意思?它的计算结果不是总是False吗
if xx in "":
False
通常in用于检查数组中是否存在键或列表中是否存在元素
in
>>> 2 in [1,2,3] True >>> 6 in [1,2,3] False >>> 'foo' in {'bar', 'foo', 'baz'} True
但它也适用于字符串:
>>> 'foo' in 'barfoobar' True >>> 'foo' in 'barbarbar' False
如果wallet_name是空字符串,则该表达式为真
wallet_name
如果代码编写如下,可能会更清楚:
if wallet_name == '':
或者只是:
if not wallet_name:
如果wallet_name本身为空,它将返回True:
True
>>> foo = '' >>> foo in '' True
这是可怕的。只需使用if not wallet_name:,或者使用or并完全删除if语句:
or
if
def determine_db_name(): return wallet_name or "wallet.dat"
这是因为or短路,如果不是空字符串,则返回wallet_name,否则返回"wallet.dat"
"wallet.dat"
通常
in
用于检查数组中是否存在键或列表中是否存在元素但它也适用于字符串:
如果
wallet_name
是空字符串,则该表达式为真如果代码编写如下,可能会更清楚:
或者只是:
如果
wallet_name
本身为空,它将返回True
:这是可怕的。只需使用
if not wallet_name:
,或者使用or
并完全删除if
语句:这是因为
or
短路,如果不是空字符串,则返回wallet_name
,否则返回"wallet.dat"
相关问题 更多 >
编程相关推荐