我希望能够使用提供的电子邮件地址或用户 ID(整数)从数据库中提取用户。为此,我必须检测提供的字符串是整数还是电子邮件。寻找最快的方法来做到这一点。谢谢。
def __init__(self, data):
#populate class data
self._fetchInfo(data)
def _fetchInfo(self, data):
#If an email
#SELECT ... WHERE email = 'data'
#or if a user_id
#SELECT ... WHERE id = 'data'
#Fill class attributes
self._id = row['id']
self._email = row['id']
...
请您参考如下方法:
在 Python 中处理这个问题的规范方法是先尝试,稍后请求原谅:
def _fetchInfo(self, data):
try:
data=int(data)
sql='SELECT ... WHERE id = %s'
args=[data]
except ValueError:
sql='SELECT ... WHERE email = %s'
args=[data]
# This might fail, in which case, data was neither a valid integer or email address
这个策略也被称为 "It is Easier to Ask for Forgiveness than Permission" .
