Python Koans单身元组

时间:2018-04-17 21:56:20

标签: python

我无法通过Greg Malcolm的Python Koans(https://github.com/gregmalcolm/python_koans/blob/master/python3/koans/about_tuples.py)中的一个单例元组测试“test_tuples_of_one_look_peculiar”。

具体来说,我在

中提出(或在搜索时找到)的唯一答案

self.assertEqual(__, ("I'm a tuple",))

是同义反复自我引用:

self.assertEqual(("I'm a tuple",), ("I'm a tuple",)) 这留下了测试的学习或目的乞讨。是的,x == x。

答案是否像Python Zen,TOOWTDI一样简单,还是与单例元组构造函数(value,)有其他等价物?

1 个答案:

答案 0 :(得分:2)

这似乎是一种无法提供信息的练习,因为有很多方法可以编写单例元组的创建。例如:

tuple(["I'm a tuple"])
tuple({"I'm a tuple"})
# ... etc. for other sequence types

("I'm a tuple",)

# or even
def single_value():
    yield "I'm a tuple"

tuple(value for value in single_value())

# or something ludicrous
next(map(tuple, [["I'm a tuple"]]))

甚至像这样的犯罪疯狂的想法:

In [43]: class TuplePiper(object):
    ...:     def __init__(self, value):
    ...:         self.value = value
    ...:
    ...:     def __rshift__(self, other):
    ...:         return other([self.value])
    ...:     

In [44]: TuplePiper("I'm a tuple") >> tuple
Out[44]: ("I'm a tuple",)

除非练习附带一个识别假设或约束来解释这些可能性中哪些应该满足测试,否则它似乎只是一个偏好问题。