假设我们有以下函数:
def f(x):
"""
Turns x into a set.
>>> given_x = ['a', 'b', 'c', 'd', 'e', 'f']
>>> f(given_x)
{'a', 'b', 'c', 'd', 'e', 'f'}
"""
return set(x)
运行 doctest 将(通常)导致如下所示:
Failure
**********************************************************************
File "/home/black/Dev/exp_2.py", line 6, in f
Failed example:
f(given_x)
Expected:
{'a', 'b', 'c', 'd', 'e', 'f'}
Got:
{'d', 'e', 'f', 'c', 'a', 'b'}
显然,由于该功能按预期工作,因此不应该发生此故障,但由于结果无序而确实发生了。
我的实际函数的输出可能比这复杂得多。它可能是一个包含字典、集合、列表的字典。
我需要一个通用的解决方案(如果有的话)。仅仅sort()
在给出的例子上并不能解决我的真实案例问题。
问题:
当涉及无序输出时,如何防止 doctest(错误地)失败?