use*_*724 7 python methods return python-2.7
我正在攻读Udacity的Web应用工程课程.我注意到教师在他的验证方法中使用了andoperator in return语句.我不明白如何返回2个参数.我想,它可能像if声明.谁能解释它到底是什么?
这是验证方法:
USER_RE = re.compile(r"^[a-zA-Z0-9_-]{3,20}$")
def valid_username(username):
return username and USER_RE.match(username)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Ned*_*der 12
该and运营商评估是否在它的两个参数都TRU十岁上下,但在一个稍微令人惊讶的方式:首先,它检查其左参数.如果它是真实的,那么它返回其正确的论点.如果左参数是伪造的,那么它返回左参数.
所以代码中的最后一行:
return username and USER_RE.match(username)
Run Code Online (Sandbox Code Playgroud)
是相同的:
if username:
return USER_RE.match(username)
else:
return username
Run Code Online (Sandbox Code Playgroud)
username如果它们不是空的话,那些字符串就很啰嗦.match如果模式匹配,则regex 函数返回truish匹配对象None,如果不匹配,则返回falsish值.
最终结果是,valid_username如果username不是空字符串,并且用户名与给定模式匹配,则返回值.
注意这里的"和"与返回两个值无关,它计算一个值.
| 归档时间: |
|
| 查看次数: |
1504 次 |
| 最近记录: |