python - 设置Python文件中值的允许数据类型/类型转换的范围

标签 python dynamic types casting

我正在逐行读取文件。行由“|”分隔。由于从文件中读取值后,它们会被解释为字符串,因此我想将它们转换为正确的表示形式(我现在是每个“列”值的数据类型)。

因此,我编写了一个如下所示的小“翻译”方法:

def translateType(self, dataType):
    if dataType == "INTEGER":
       return int
    elif dataType == "FLOAT":
       return float
    elif dataType == "STRING":
       return str

我认为这并不是一个真正令人满意的解决方案,因为这段代码在某种程度上不是很丑陋,并且当需要支持更多数据类型时会很痛苦。

您是否有任何想法如何使这种“排版”以某种方式更好且更具可扩展性?

最佳答案

使用字典,例如

def translateType(t):
    return {"INTEGER": int, "FLOAT": float, "STRING": str}.get(t, None)

或者,如果性能至关重要(首先配置文件),请在参数列表中定义字典,这样就不需要在每次调用函数时都创建它:

def translateType(t, types={"INTEGER": int, "FLOAT": float, "STRING": str}):
    return types.get(t, None)

关于python - 设置Python文件中值的允许数据类型/类型转换的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7990365/

相关文章:

c# - 如何在方法调用中传递动态参数

generics - 具有通配符类型参数的 Map 上的 flatMap

haskell - 如何在 ( :+:) f g p? (With :+: from GHC. Generics) 中为 p 指定类约束

python - 使用 ctypes.windll.shell32.ShellExecuteW 从 Python 脚本中请求 UAC 提升

python - 在派生类中重写assertEqual时出现类型错误

python - Raspberry Pi NoIR 相机挂起

php 升级到 5.4(动态下拉菜单不起作用)

python - 多次拟合 sklearn 线性回归分类器是添加数据点还是只是替换它们?

javascript - 如何在 jQuery 中动态生成可折叠集?

json - 如何将结构作为参数传递给函数