python - python中的类型模仿

标签 python haskell

在 Python 中模仿类型的最佳方法是什么?

如何在 Python 中定义 TestResult Haskell 数据类型?

data TestResult
  = TestResult {name :: String,
                feature :: String,
                passed :: Bool,
                errorMessage :: String}

我试过了,但看起来有点傻。还有其他方法可以处理这种行为吗?

class TestResult:
    def __init__(self, name, feature, passed, errorMessage):
        self.name         = name
        self.feature      = feature
        self.passed       = passed
        self.errorMessage = errorMessage

我不是在寻找一些多余的类型,而是在寻找像“类型构造函数”这样的魔法组合,将一些数据 stub 组合成一个逻辑上单一的东西。

最佳答案

对于不可变数据,您可以使用 collections.namedtuple:

>>> from collections import namedtuple
>>> TestResult = namedtuple("TestResult", "name feature passed errorMessage")
>>> TestResult("a", "b", True, "c")
TestResult(name='a', feature='b', passed=True, errorMessage='c')

关于python - python中的类型模仿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12440015/

相关文章:

python - 使用 'for loop' 合并两个数组

python - 我怎样才能在 spyder 中激活这种菜单

python - 无法在 virtualenv 中导入 django,但在停用时可以工作

haskell - 将函数提升至 Conduit Sink

authentication - Yesod 中的多重身份验证?

date - 在本地时区获取 Haskell 中的日期

python - 如何通过优雅的编码更快地将一些逻辑应用于数据框列

python - 无法使用networkx添加边或节点

haskell - 如何从命令行输入两个整数并返回平方和的平方根

haskell - 如何在 Haskell 中过滤无限列表