Не может повторно использовать значение предыдущего типа вместо None - PullRequest
0 голосов
/ 10 ноября 2019

Я создал функцию в python для печати некоторой информации через нее. Я пытаюсь поставить list of alphabets для функции вместе с type, под которые попадают эти алфавиты.

Поскольку я не предоставляю значение type с внешней стороны функции, я определил его как None. Однако, когда я выполняю функцию, она проверяет, является ли значение типа None. Если он равен None, он выполняет блок исключения, чтобы получить единицу.

Хотя значение типа равно None, когда в функцию передается алфавит, значения предыдущего типа уже нет (при запускедважды) хранится в памяти.

Я пробовал:

def get_info(alpha,alpha_type):

    print("checking value of item:",alpha_type)

    try:
        if not alpha_type:raise
        return alpha,alpha_type
    except Exception:
        alpha_type = "vowel"
        return get_info(alpha,alpha_type)

if __name__ == '__main__':
    for elem in ["a","e","o"]:
        print(get_info(elem,alpha_type=None))

Вывод, который он производит:

checking value of item: None
checking value of item: vowel
('a', 'vowel')
checking value of item: None
checking value of item: vowel
('e', 'vowel')
checking value of item: None
checking value of item: vowel
('o', 'vowel')

Вывод, который я хотел бы получить:

checking value of item: None
checking value of item: vowel
('a', 'vowel')
checking value of item: vowel
('e', 'vowel')
checking value of item: vowel
('o', 'vowel')

Как я могу использовать значение предыдущего типа вместо None?

Кстати, я после любого решения, которое сохраняет существующий дизайн без изменений.

1 Ответ

1 голос
/ 10 ноября 2019

В настоящее время вы переходите от основного alpha_type=None каждый раз. Если вы хотите передать последнее возвращенное значение, измените основное значение на:

if __name__ == '__main__':
    main_type = None
    for elem in ["a","e","o"]:
        result = get_info(elem, alpha_type=main_type)
        main_type = result[1]
        print(result)

Вывод:

checking value of item: None
checking value of item: vowel
('a', 'vowel')
checking value of item: vowel
('e', 'vowel')
checking value of item: vowel
('o', 'vowel')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...