我的第一次尝试:
def generate_id():
""" Create unique id of alphanumeric characters """
i = 0
id = ''
while i!=10:
id = id + random.choice(string.ascii_letters + string.digits)
i+=1
if check_unique(id):
return id
id = generate_id()
return id
def check_unique(id):
"""Check if id is unique"""
try:
instances = SomeModel.objects.get(id=id)
except ObjectDoesNotExist:
return True
return False
第二条路:
def generate_id():
""" Create unique id of alphanumeric characters """
i = 0
id = ''
while i!=10:
id = id + random.choice(string.ascii_letters + string.digits)
i+=1
if check_unique(id):
return id
generate_id()
def check_unique(id):
"""Check if id is unique"""
try:
instances = SomeModel.objects.get(id=id)
except ObjectDoesNotExist:
return True
return False
如果我用第二种方法来做,我生成唯一id的逻辑不是错了吗?因为我可能会丢失上次通话的身份证。你知道吗
我是python新手,我不知道,但是我觉得我的recursion
概念看起来很混乱
第二种方法是返回a generate\u id函数的末尾:
我还建议进行迭代而不是递归调用。。。在这种情况下似乎更干净。你知道吗
遵循您的代码:
如果要创建唯一的ID,请不要使用递归。只要使用
while
循环并生成新的ID,只要它们不是唯一的:相关问题 更多 >
编程相关推荐