Я пытаюсь лучше понять следующий код 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."
Я попытался проверить результирующий объект, который передается обратно вызывающему, однако я все еще не совсем понимаю, как это работает.
Кажется, что это возвращает пароль обратно вызывающему и логическое значение того, действительно ли пароль действителен, однако я не понимаю, как вызывающая функция может проверять bool объекта? Это что-то основное в Python, которое я пропустил?
Существует другой пример аналогичного использования рядом с этим, однако он использует оператор "или", который для меня еще более запутанным:
def valid_email(self, email):
EMAIL_RE = re.compile(r'^[\S][email protected][\S]+\.[\S]+$')
return not email or EMAIL_RE.match(email)
Любые советы о том, что здесь происходит, будут очень признательны. Код работает и делает то, что вы ожидаете от него, проверяет ввод на регулярное выражение и возвращает True или False, однако мне бы очень хотелось понять, что он был написан так, а не просто возвращать bool.