Değil Making random phone number xxx-xxx-xxxxPython: Rasgele bir telefon numarası nasıl oluşturulur?
Benim projenin yinelenen telefon numarası doğrulama için python-phonenumbers ve django-phonenumber-field kullanır. Yani
>>> import functools
>>> import random
>>> a = functools.partial(random.randint, 0, 9)
>>> gen = lambda: "+{}-{}{}{}-{}{}{}-{}{}{}{}".format(a(), a(), a(), a(), a(), a(), a(), a(), a(), a(), a())
>>> gen()
'+2-758-702-0180' # Obviously wrong
>>> gen()
'+1-911-555-0180' # Obviously wrong, it has 911 in it
, hiçbir üst sınırı vardır döngü sırasında kaba kuvvete başvurmadan ve bir tanıtma olmadan,: Proje kapsamında özel doğrulama kuralları engin listeleri, böyle naif bir yaklaşım yeterli olmayacaktır hangi içindir Bu tür önemsiz problemler için üst sınır, doğrulayıcı tarafından kabul edilen geçerli telefon numaraları üretmek için daha iyi yollar var mı?
from phonenumber_field.validators import validate_international_phonenumber
from django.core.exceptions import ValidationError
def generate_valid_number():
while True: # While loops are not desired, even with an upper bound!
try:
number = gen()
validate_international_phonenumber(number)
return number
except ValidationError:
pass
related: [gösteren yalanlar Programcılar Telefon Numaraları Hakkında inanın] (https://github.com/googlei18n/libphonenumber/blob/master/FALSEHOODS.md) –
bu testler içindir @PeterWood. Biraz felç iyidir. – Brian