Как доказать, что `fake.unique.ascii_free_email ()` никогда не вернет повторяющийся адрес электронной почты, сколько бы раз он ни запускался

  • Я хочу понять и доказать с помощью некоторых результатов, что ни в коем случае адрес электронной почты, возвращенный этим фальшивый провайдер, вернет дубликат электронной почты для сеанса запуска
  • Я попытался запустить приведенный ниже фрагмент и обнаружил, что не было дублируется в списке из 20 писем с результатами, но я хочу спросить, есть ли способ, которым я могу с уверенностью доказать, что, скажем, запустил ли я это фрагмент N раз, тогда в список из N полученных писем
from faker import Faker

fake = Faker()

def test_faker():
    for _ in range(20):
        print(fake.unique.ascii_free_email())

Почему вы хотите это доказать? Если ваша основная цель - избежать дублирования, почему бы не добавить набор и повторно не сгенерировать все, что уже есть в наборе, пока вы не достигнете желаемого количества? «Никогда не создавай обмана» - это большая надежда. Имеется конечное количество символов ASCII ограниченной длины.

ggorlen 05.04.2021 06:47
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот что делает fake.unique. UniqueProxy оборачивает каждый поддельный метод декоратором, который гарантирует, что в рамках этого прогона каждое значение будет возвращено только один раз. См. https://github.com/joke2k/faker/blob/master/faker/proxy.py

Получается, что fake.unique.ascii_free_email() на самом деле не уникален и действительно возвращает повторяющиеся значения, если используется для создания большого количества тестовых писем, поэтому я использовал другой подход к созданию уникальных писем, приняв что-то вроде этого return "test-{}@gmail.com".format(uuid4().hex)

philomath 07.04.2021 22:13

Другие вопросы по теме