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
相关产品推荐
相关产品推荐

