我从来没有意识到我是一个程序员,直到我遇到下面这个练习。我将编写一个Python文件,允许下面的所有测试通过而不会出错。口译员在找什么?
我相信我写的文件需要是一个类,但我完全不知道我的班上应该写些什么。我知道问题在问什么,但不知道如何制作课程,或者如何使用适当的对象来响应对课程的调用。
请查看下面的练习代码,然后在最后看到我的问题。
文件与测试:
import unittest
from allergies import Allergies
class AllergiesTests(unittest.TestCase):
def test_ignore_non_allergen_score_parts(self):
self.assertEqual(['eggs'], Allergies(257).list)
if __name__ == '__main__':
unittest.main()
1)我不明白,在这个断言的末尾的“清单”的方法。它是内置Python函数“list()”,还是我需要在“过敏”类中定义的属性?
2)什么类型的对象是 “过敏(257).LIST”
self.assertEqual(['eggs'], Allergies(257).list)
3)我通过定义像下面的东西接近这个?
def list(self):
list_of_allergens = ['eggs','pollen','cat hair', 'shellfish']
return list_of_allergens[0]
是的我看到了错字/语法错误。它应该是“list_of_allergens [0]”“过敏(257).list”中的点使我认为这是一种“方法”,但是你说它是一个“属性”。这大大帮助我分离出两个概念:) – 2014-10-29 01:39:42
@ user1473511:方法是一种属性。松散地说,你可以把它们看作可以像函数一样调用的属性,并且通常像函数那样定义。 (要严格地说,你必须理解描述符和你不想学习的描述符和类属性访问规则。) – abarnert 2014-10-29 18:28:19