返回时设置特定类型而不传递初始值

问题描述 投票:0回答:1

我有一个函数可以推断文本文件的某些参数的类型。其中一些确实已经有了初始值,因为有些值不可能从一开始就设置一个合理的值(它用于 webgui)。所以我想不返回任何内容(我猜是“无”)作为值,但想设置类型,例如整型、浮点型、字符串型、..

很想在那里获得一些帮助。这有可能吗?

这是我到目前为止所拥有的:

def infer_type(val: str):
    try:
        return "int32", int(val)
    except ValueError:
        pass

    try:
        return "float64", float(val)
    except ValueError:
        pass

    if val is None:
        val = ""
    return "string", val

但问题是,所有 None 值都只是设置为“string”类型,并以“”作为初始值,但我希望它们具有正确的类型。希望这是可以理解的。

python return return-value return-type nonetype
1个回答
0
投票

你可以从一开始就处理“无”:

def infer_type(val):
    if val is None:
        return "None", None

    try:
        return "int32", int(val)
    except ValueError:
        pass

    try:
        return "float64", float(val)
    except ValueError:
        pass

    return "string", str(val)
© www.soinside.com 2019 - 2024. All rights reserved.