Ho osservato domande simili su come generare numeri casuali in python. Esempio: Similar Question - ma non ho il problema che la funzione random restituisce sempre gli stessi valori.random.choice() restituisce lo stesso valore allo stesso secondo, come si evita?
Il mio generatore casuale funziona bene, il problema è che restituisce lo stesso valore quando si chiama la funzione a, cosa penso, lo stesso secondo che non è desiderabile.
Il mio codice è simile al seguente
def getRandomID():
token = ''
letters = "abcdefghiklmnopqrstuvwwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for i in range(1,36):
token = token + random.choice(letters)
return token
Come ho detto questa funzione restituisce valori diversi quando vengono chiamati in su tempi diversi, ma restituisce lo stesso valore quando si chiama la funzione allo stesso tempo. Come evito questo problema?
Io uso questa funzione in un server back-end per generare ID univoci per gli utenti in front-end da inserire in un database in modo da non poter controllare gli intervalli di tempo quando ciò accade. Devo avere token casuali per mappare gli utenti nel database in modo da poterli inserire correttamente con i queuumum nel database.
come restituisce lo stesso id quando viene chiamato da due utenti contemporaneamente ?? – Hackaholic
Suggerisco di usare 'uuid' per generare ID utente casuali. – hjpotter92
Hackaholic - esattamente, restituisce lo stesso "token" che è la stessa stringa di randomlett quando viene chiamato da due utenti. –