как получить доступ к словарю из другой функции в текущей функции - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь обратиться к словарю в function_one. Я попытался вернуть словарные переменные и использовать имена словарей в качестве параметров и аргументов. Однако я получаю сообщение об ошибке, в котором говорится, что словари, к которым я пытаюсь получить доступ в function_two, не определены.

Вот мой упрощенный код:

def function_one():
    first_dictionary = {"text1": "text2","text3": "text4"}
    second_dictionary = {"example1": "example2","example3": "example4"}

    for i in first_dictionary:
        print(i,first_dictionary[i])

    for i in second_dictionary:
        print(i,second_dictionary[i])

    return first_dictionary,second_dictionary

def function_two(first_dictionary,second_dictionary):
    total_cost = 0
    input1 = True
    while input1 != '0':
        input1 = input("Input1")
        input2 = int(input("Input2".format(input1)))
        if input1 in first_dictionary:
            total_cost += input2 * 5
        elif input1 in second_dictionary:
            total_cost += input2 * 4

#main Routine

function_one()
function_two(first_dictionary,second_dictionary)

По сути, я спрашиваю, находится ли элемент, выбранный для input1, в словаре в предыдущей функции. Я хочу, чтобы программа изменила значение total_cost et c.

Ответы [ 3 ]

3 голосов
/ 20 июня 2020

Когда вы вызываете function_one(), вы не используете возвращаемые им словари. Вы можете использовать это для решения своей проблемы:

first_dictionary, second_dictionary = function_one()
function_two(first_dictionary,second_dictionary)
3 голосов
/ 20 июня 2020

Вы не получили возвращаемое значение:

first_dictionary,second_dictionary = function_one()
3 голосов
/ 20 июня 2020

Сначала вам нужно вернуть значения из function_one (). Вы можете сделать следующее:

first_dictionary, second_dictionary = function_one()
function_two(first_dictionary,second_dictionary)

В противном случае вы можете использовать глобальные переменные, что в большинстве случаев не рекомендуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...