Возвращение случайных значений - PullRequest
0 голосов
/ 03 апреля 2020

Я создал генератор случайных людей. Разделены на функции и класс, которые определяют человека. Я использую Json файл для имен. Но когда я запускаю код, имя человека и адрес электронной почты являются разными случайными именами, хотя они выполняют одну и ту же функцию. Я предполагаю, что это связано с неправильным возвратом функции.

def Person():
    files = ['global', 'local']
    file = choice(files)
    with open('names/{}.json'.format(file)) as f:
        data = json.load(f)
    randomFirst = randint(0, (len(data['first']) - 1))
    randomLast = randint(0, (len(data['last']) - 1))
    firstName = data['first'][randomFirst]
    lastName = data['last'][randomLast]
    email = firstName.lower() + '.' + lastName.lower() + str(suffix) + choice(domain)

    return firstName, lastName, email

user = User(Person()[0], Person()[1], Person()[2])

Вывод:

Name:Sarah Gagnon, Email:sofia.sanchez200@yandex.com

1 Ответ

1 голос
/ 03 апреля 2020

Вы вызываете функцию несколько раз, обозначенную (), вместо этого вы можете либо просто распаковать возвращаемые значения, либо присвоить ее локальной переменной

user = User(*Person())
user = User((p:= Person())[0], p[1], p[2])
p = Person()
user = User(p[0], p[1], p[2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...