Recordtype不能作为namedtuple集合的替代品

时间:2017-09-09 21:31:38

标签: python python-unittest namedtuple recordtype

我对Python很陌生,所以如果我遗漏了一些明显的东西,请原谅我。最初我有一个由collections.namedtouple子类化的类。我的理解是,recordtype可以用作想要一个可变的namedtuple的人的替代品。但是当我离开这段代码时:

class SplitResultsContainer(collections.namedtuple('SplitResultsContainer', _URI_COMPONENTS)):

到此代码:

class SplitResultsContainer(recordtype.recordtype('SplitResultsContainer', _URI_COMPONENTS, default=None)):

我的一项测试失败了:

self.assertEquals(splituri('foo://example.com:8042/over/there?name=ferret#nose'), ('foo', 'example.com:8042', '/over/there', 'name=ferret', 'nose'))
AssertionError: SplitResultsContainer(scheme=foo, authority=example.com:8042, path=/over/there, query=name=ferret, fragment=nose) != ('foo', 'example.com:8042', '/over/there', 'name=ferret', 'nose')

我正在创建一个URI解析器来自学Python。关于为什么元组与我的测试中的记录类型不匹配的任何帮助都会非常有帮助,谢谢!

0 个答案:

没有答案