Tôi đã xem xét các câu hỏi tương tự về cách tạo số ngẫu nhiên trong python. Ví dụ: Similar Question - nhưng tôi không có vấn đề rằng hàm ngẫu nhiên trả về cùng một giá trị mỗi lần.random.choice() trả về cùng một giá trị trong cùng một giây, làm thế nào để tránh nó?
Trình tạo ngẫu nhiên của tôi hoạt động tốt, vấn đề là nó trả về cùng một giá trị khi gọi hàm tại, điều tôi nghĩ, cùng một giây không thể xóa được.
Mã của tôi trông như thế này
def getRandomID():
token = ''
letters = "abcdefghiklmnopqrstuvwwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
for i in range(1,36):
token = token + random.choice(letters)
return token
Như tôi đã đề cập chức năng này trả về giá trị khác nhau khi được gọi ở trên thời điểm khác nhau nhưng trả về giá trị tương tự khi gọi hàm cùng một lúc. Làm cách nào để tránh sự cố này?
Tôi sử dụng chức năng này trong máy chủ back-end để tạo ID duy nhất cho người dùng ở đầu trước để chèn vào cơ sở dữ liệu để tôi không thể kiểm soát khoảng thời gian khi điều này xảy ra. Tôi phải có mã thông báo ngẫu nhiên để ánh xạ người dùng trong cơ sở dữ liệu để có thể chèn chúng một cách chính xác với hàng đợi trong cơ sở dữ liệu.
giống như nó trả lại cùng một id khi được gọi bởi hai người dùng cùng một lúc ?? – Hackaholic
Tôi khuyên bạn nên sử dụng 'uuid' để tạo id người dùng ngẫu nhiên. – hjpotter92
Hackaholic - chính xác, nó trả về cùng một "mã thông báo" giống như chuỗi ký tự ngẫu nhiên khi được gọi bởi hai người dùng. –