我试图更好地理解以下 python 代码以及作者为什么在返回中使用“AND”语句。
def valid_password(self, password):
PASS_RE = re.compile(r'^.{6,128}$')
return password and PASS_RE.match(password)
再往下看代码...
if not self.valid_password(self.password):
params['error_password'] = "Please enter a valid password."
我已经尝试检查返回给调用者的结果对象,但是我仍然不完全理解它是如何工作的。
似乎这会将密码返回给调用者以及密码是否有效的布尔值,但是我不明白调用函数如何检查对象的布尔值?这是我错过的关于 Python 的基本知识吗?
在此旁边还有另一个类似用法的示例,但是它使用了“或”语句,这对我来说更加令人困惑:
def valid_email(self, email):
EMAIL_RE = re.compile(r'^[\S]+@[\S]+\.[\S]+$')
return not email or EMAIL_RE.match(email)
任何关于这里到底发生了什么的建议将不胜感激。该代码可以正常工作并执行您期望它执行的操作,根据正则表达式验证输入并返回 True 或 False,但是我真的很想了解它是这样写的,而不是简单地返回 bool。