如果 return 有多个值,我该如何使用 return 由 python 函数编辑的内容?
How do I use what's returned by a python function if it return more than one value?
所以我有这个代码:
def validate_username(username):
find_username = cursor.execute("SELECT username FROM user WHERE username = ?", (username, ))
if find_username.fetchone() is not None:
username_is_valid = False
invalid_reason = 'Username already exists'
elif len(username) > 255:
username_is_valid = False
invalid_reason = 'Invalid format'
elif not match(r"[^@]+@[^@]+\.[^@]+", username):
username_is_valid = False
invalid_reason = 'Username must be an email address'
else:
username_is_valid = True
invalid_reason = None
return username_is_valid, invalid_reason
很明显,它将 return 其中之一:
(False, 'Username already exists')
(False, 'Invalid format')
(False, 'Username must be an email address')
(True, None)
现在我想做的是将这两个参数传递给变量,以便它们可以被重用、打印等。但是由于某种原因,我真的无法在网上找到如何做;我假设是因为我没有正确表达我的问题。也许这里有人可以提供一些指导?
基本上这里的目标是 运行 带有用户名的函数,然后如果用户名无效,打印为什么无效,如果有效,然后继续。
只需将输出分配给两个变量,如下所示:
username_is_valid, invalid_reason = validate_username(username)
或者,如果将输出分配给单个变量,则可以使用切片访问其元素:
username_validation = validate_username(username)
username_is_valid = username_validation[0]
invalid_readon = username_validation[1]
术语是 tuple
(x, y)
是一个元组,您可以像访问列表一样访问这些值,这意味着 (x, y)[0]
returns x 和 (x, y)[1]
returns y
所以我有这个代码:
def validate_username(username):
find_username = cursor.execute("SELECT username FROM user WHERE username = ?", (username, ))
if find_username.fetchone() is not None:
username_is_valid = False
invalid_reason = 'Username already exists'
elif len(username) > 255:
username_is_valid = False
invalid_reason = 'Invalid format'
elif not match(r"[^@]+@[^@]+\.[^@]+", username):
username_is_valid = False
invalid_reason = 'Username must be an email address'
else:
username_is_valid = True
invalid_reason = None
return username_is_valid, invalid_reason
很明显,它将 return 其中之一:
(False, 'Username already exists')
(False, 'Invalid format')
(False, 'Username must be an email address')
(True, None)
现在我想做的是将这两个参数传递给变量,以便它们可以被重用、打印等。但是由于某种原因,我真的无法在网上找到如何做;我假设是因为我没有正确表达我的问题。也许这里有人可以提供一些指导?
基本上这里的目标是 运行 带有用户名的函数,然后如果用户名无效,打印为什么无效,如果有效,然后继续。
只需将输出分配给两个变量,如下所示:
username_is_valid, invalid_reason = validate_username(username)
或者,如果将输出分配给单个变量,则可以使用切片访问其元素:
username_validation = validate_username(username)
username_is_valid = username_validation[0]
invalid_readon = username_validation[1]
术语是 tuple
(x, y)
是一个元组,您可以像访问列表一样访问这些值,这意味着 (x, y)[0]
returns x 和 (x, y)[1]
returns y