Python Can';t重用上一个类型的值,而不是None

Python Can';t重用上一个类型的值,而不是None,python,python-3.x,function,Python,Python 3.x,Function,我已经在python中创建了一个函数来通过它打印一些信息。我试图向函数提供字母列表,以及那些字母所属的类型 由于我没有从函数的外部提供type的值,所以我将其定义为无。但是,当我执行函数时,它会检查类型的值是否为None。如果为None,则执行except块以获取一个 虽然当向函数提供字母表时,该类型的值为None,但内存中是否已经存储了前一个类型(运行两次时)的值 我试过: def get_info(alpha,alpha_type): print("checking value o

我已经在python中创建了一个函数来通过它打印一些信息。我试图向函数提供
字母列表
,以及那些字母所属的
类型

由于我没有从函数的外部提供
type
的值,所以我将其定义为无。但是,当我执行函数时,它会检查类型的值是否为None。如果为None,则执行except块以获取一个

虽然当向函数提供字母表时,该类型的值为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


顺便说一句,我想要任何保持现有设计完整的解决方案。

目前您每次都从主
alpha_type=None
传递。如果要传递最后一个返回值,请将main更改为:

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')

为什么要保留现有的设计?使用异常而不是简单的if过于复杂,而且您似乎在使用默认参数值的情况下完成了所有这一切。这应该做什么?从您的问题来看,您的函数似乎已经生成了正确的输出,即它返回的对正是您想要的,但您(可以理解)对实现方法不满意?如果不是这样的话,你能添加一个出错的例子吗?它似乎以正确的方式工作。谢谢。