我一直想知道是否可以以某种方式将“if”和“as”语句结合起来,如下所示:
if possible_error() as error:
return error
Run Code Online (Sandbox Code Playgroud)
代替
error = possible_error()
if error:
return error
Run Code Online (Sandbox Code Playgroud)
其中“possible_error”函数返回空字符串或错误消息。通过这样做,我可以节省一行代码。
我知道一些妥协是运行这个函数两次:
if possible_error():
return possible_error()
Run Code Online (Sandbox Code Playgroud)
但我宁愿避免这样做。
我知道问题的标题可能不是最直观的,但我想不出更好的方法来简短地描述它,这就是我的实际意思。
我想写一些小的解析器,它会用我指定的字符串构建一个 kwargs 字典。
下面是一个例子:
string_of_kwargs = 'n=6,m=10'
graph_kwargs = {pair.split('=')[0]:pair.split('=')[1]
for pair in string_of_kwargs.split(',')}
Run Code Online (Sandbox Code Playgroud)
输出是:
{'n': '6', 'm': '10'}
Run Code Online (Sandbox Code Playgroud)
问题是在上面的代码中,我不得不使用 pair.split('=') 两次,我想知道是否有办法解决它,以防我将来不得不解压更多这样的值。