我在这里有这个代码:
import re
def get_attr(str, attr):
m = re.search(attr + r'=(\w+)', str)
return None if not m else m.group(1)
str = 'type=greeting hello=world'
print get_attr(str, 'type') # greeting
print get_attr(str, 'hello') # world
print get_attr(str, 'attr') # None
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我不是特别喜欢这一行:
return None if not m else m.group(1)
Run Code Online (Sandbox Code Playgroud)
在我看来,如果我们可以使用三元运算符,这看起来会更清晰:
return (m ? m.group(1) : None)
Run Code Online (Sandbox Code Playgroud)
但那当然不存在.你有什么建议?
Chr*_* B. 10
Python 有一个三元运算符.你正在使用它.它只是在X if Y else Z形式中.
也就是说,我很容易写出这些东西.如果你牺牲清晰度,在一条线上装配东西并不是那么好.
def get_attr(str, attr):
m = re.search(attr + r'=(\w+)', str)
if m:
return m.group(1)
return None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |