我目前正在通过优秀的Python koans,我可以通过一些谷歌搜索来理解他们中的大多数,但这一个让我难住(注意:__
变量是我必须找到的答案的占位符):如何在表达式中使用__class__?
class AboutTuples(Koan):
# ....
def test_tuples_of_one_look_peculiar(self):
self.assertEqual(__, (1).__class__)
self.assertEqual(__, (1,).__class__)
self.assertEqual(__, ("Hello comma!",))
我明白__class__
返回表达式的类型,所以在第一种情况下,这应该是“包含整数的元组”,以及另外两个......我不太清楚,因为第一个元素后的逗号。因为它是,它失败,我得到这个输出:
You have not yet reached enlightenment ...
AssertionError: '-=> FILL ME IN! <=-' != <class 'int'>
这是通常的答案,如果你已经离开占位符变量。在此之后,我试过如下:
self.assertEqual("<class 'int'>", (1).__class__)
但我得到以下输出:
You have not yet reached enlightenment ...
AssertionError: "<class 'int'>" != <class 'int'>
所以很明显它不是期望得到一个字符串,可能是一个类型的某种......我该怎么表达这在Python中?其他两个测试用例的答案是否相似?
编辑:Link to the exact koan,以防万一
'self.assertEqual(int,(1).__ class __)'? *“在第一种情况下,这应该是”一个包含整数的元组“* - 否,绝对不应该;这就是练习试图教给你的开始。 – jonrsharpe