Python try / except ...函数总是返回false

ens*_*are 3 python pylons

我试图在这段简短的代码中找出问题所在。任何帮助,将不胜感激。无论我将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'}
Run Code Online (Sandbox Code Playgroud)

我已经确认返回的错误来自NameError之外。

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

谢谢。

jld*_*ont 5

您还没有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
Run Code Online (Sandbox Code Playgroud)