You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将相似的类型输入函数合并为一个,无需case分支判断?

通用输入类型转换函数优化方案

结论

完全可以直接传入真实的数据类型对象实现无分支逻辑,Python中的数据类型本身就是可调用的一等对象,可直接作为参数传递并执行转换操作。

优化后代码实现

from fractions import Fraction

def get_value(message, data_type):
    # 可选校验:确保传入的类型是可调用的
    if not callable(data_type):
        raise TypeError("data_type参数必须为可调用的类型对象")
    while True:
        try:
            return data_type(input(message))
        except ValueError:
            print("Invalid input. Try again.")

使用示例

# 读取整数输入
int_value = get_value("请输入整数:", int)
# 读取分数输入
fraction_value = get_value("请输入分数:", Fraction)
# 扩展支持浮点数无需修改函数内部逻辑,直接传入float类型即可
float_value = get_value("请输入浮点数:", float)

这种实现相比原有的字符串匹配方案扩展性更强,新增支持的转换类型不需要修改函数内部代码,直接传入对应类型对象即可使用。


内容的提问来源于stack exchange,提问作者escape99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:06:00