У меня есть несколько проблем, с которыми я не могу справиться даже после нескольких дней работы над ним.AssertionError и TypeError в Python
Toy
не имеет переменные экземпляра и один метод, игры, которая возвращает строку "Squeak!\n"
(с восклицательным знаком и капитала 'S'
, без пробелов и с новой строки в конце). Конструктор для Toy (его метод __init__
) не принимает параметр (кроме обычного «я») и ничего не делает (поэтому его можно, вероятно, опустить).
A Dog
имеет одну переменную экземпляра, ее имя, которое должно быть представлено в качестве параметра конструктору. Он имеет два метода:
call(self, shout)
возвращает True
если shout
является именно "Here, n!"
(с запятой, пространство и восклицательный знак, а не вводных или завершающих пробелов), где n
это имя собаки. В противном случае он возвращает False
.
play(self, toy, n)
создает строку "Yip! "
(с конечным пространством), соединенную с строкой, возвращаемой toy.play()
. Он возвращает эту комбинацию, повторенную 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())
Однако я получаю несколько ошибок, таких, как это:
TestDog2.test_dog_fancy_toy
FAILURE: AssertionError
None != 'Yip! Ding, Dong!\n'
-
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
Когда вы получаете эти ошибки? Что такое код, который использует эти классы? Было бы неплохо опубликовать то, что у вас есть, но нам нужно больше, чтобы помочь вам. –
его python 3. И я понятия не имею, почему я получаю такие ошибки. – user1864828
Я не получаю половину того, что у вас там ... Вы создали экземпляр объекта «Собака и игрушка»? И остерегайтесь капитализации ... – RGS