我有一些问题,即使在工作了几天之后我也无法克服。在
一个Toy没有实例变量和一个方法play,它返回字符串"Squeak!\n"(带感叹号和大写'S',没有空格,结尾有一个换行符)。Toy的构造函数(它的__init__方法)不接受任何参数(除了通常的self),也不做任何操作(因此它可能被省略)。在
Dog有一个实例变量,即其名称,必须作为参数提供给构造函数。它有两种方法:
call(self, shout)返回True如果shout正好是"Here, n!"(有逗号、空格和感叹号,没有前导或尾随空格),其中n是狗的名字。否则,返回False。
play(self, toy, n)生成与toy.play()返回的字符串串联的字符串"Yip! "(后面有空格)。它返回这个组合重复n次,除非n是负数,它与0相同。澄清:“s”重复2次是“ss”s“重复0次为”。在
这就是我所拥有的:class Toy:
def __init__(self):
pass
def play(self):
return "Squeak!\n"
class Dog:
def __init__(self, name):
self.name = name
def call(self, shout):
self.shout = shout
if self.shout == 'Here, ' + self.name + '!':
return True
return False
def play(self, toy, n):
self.toy = toy
self.n = n
if n <= 0:
print('')
else:
for i in range(n):
print('Yip ' + self.toy.play())
但是,我很少遇到这样的错误:
^{pr2}$
-TestDog2.test_dog_play_once
FAILURE: AssertionError
None != 'Yip! Squeak!\n'
-TestDog2.test_dog_play_zero_twice
ERROR: TypeError
Can't convert 'NoneType' object to str implicitly