在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
我不是在寻找一些类型 - 多余的东西,但是对于类似“类型构造函数”的神奇kludge来组合一些逻辑单一的数据存根。
答案 0 :(得分:4)
对于不可变数据,您可以使用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')
答案 1 :(得分:2)
你的代码对我来说很好看。如果你想要一个不那么详细的版本,你可以查看NamedTuple。