Как вызвать функцию с условием, которое необходимо вызвать для другой функции - PullRequest
1 голос
/ 13 января 2020

У меня есть 3 функции, которые вызывают друг друга, и у меня возникают проблемы с вызовом.

  • function1: создать словарь следующим образом с фиксированными значениями:
{'A':100, 'B':200, 'C':300}
  • function2: случайным образом генерирует букву из ключей словаря
  • function3: случайным образом генерирует число в диапазоне от 0 до X, где X - число, соответствующее ключу выбрано function2.

Как мне объединить эти три функции?

1 Ответ

0 голосов
/ 13 января 2020

Есть несколько способов, это один из них:

import random

def f1():
    return {'A':100, 'B':200, 'C':300}

def f2(d):
    return random.choice(list(d.keys())), d

def f3(k, d): 
    return random.randint(0, d[k])

print(f3(*f2(f1())))

f2() возвращает кортеж со случайным ключом и dict, которые передаются в качестве отдельных аргументов f3().

Так как в любом случае dict должен быть stati c, вы также можете просто использовать f1() снова:

import random

def f1():
    return {'A':100, 'B':200, 'C':300}

def f2(d):
    return random.choice(list(d.keys()))

def f3(k, d):
    return random.randint(0, d[k])

print(f3(f2(f1()),f1()))
...