我试图在这短短的一段代码中找出问题所在。任何帮助,将不胜感激。不管我指定 User.email 是什么,它总是返回 false。

def add(self):

    #1 -- VALIDATE EMAIL ADDRESS
    #Check that e-mail has been completed
    try:
        #Validate if e-mail address is in correct format
        if (isAddressValid(self.email) == 0):
            self.errors['email'] = 'You have entered an invalid e-mail address';
            return 0

    except NameError:
        self.errors['email'] = 'Please enter your e-mail'
        return 0

>>> u = User()
>>> u.email = 'test@example.com'
>>> u.add()
0
>>> print u.errors
{'email': 'Please enter your e-mail'}

我已经确认返回的 false 来自除 NameError 之外。

此外,isAddressValid() 只是一种检查电子邮件地址结构的方法。

谢谢。

最佳答案

您还没有为正例包含 return 语句......此外,当函数不包含 return 语句时,调用者会收到 None 代替......

def add(self):

    #1 -- VALIDATE EMAIL ADDRESS
    #Check that e-mail has been completed
    try:
        #Validate if e-mail address is in correct format
        if (isAddressValid(self.email) == 0):
            self.errors['email'] = 'You have entered an invalid e-mail address';
            return False

    except NameError:
        self.errors['email'] = 'Please enter your e-mail'
        return False

    return True

关于Python try/except ... 函数总是返回 false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2356573/

10-12 16:59
查看更多