Complete the following code to create an object spot from the Dog class with the name “Spot” and update their tricks to include “spin” then “sit”. You can use print(spot) to print the string representation of the object.
Below the class definition, create an instance of the class Dog, assigning it to the variable spot. Be sure to include a name when constructing the instance! This works similar to a function. To update the dog's tricks, use the instance and dot notation to call the method, with the name of the trick as the argument. This needs to be done for each trick. Then, using the print function, you can print the dog's tricks and the contents of the __str__ method.
class Dog:
def __init__(self, name):
self.name = name
self.tricks = [] # creates a new empty list for each dog
def updateTricks(self, trick):
self.tricks.append(trick)
def __str__(self):
return f'Dog(name = {self.name}, tricks = {str(self.tricks)})'
spot = Dog('Spot')
spot.updateTricks('spin')
spot.updateTricks('sit')
print(spot.tricks)
print(spot)
====
from unittest.gui import TestCaseGui
class myTests(TestCaseGui):
def testOne(self):
self.assertEqual(spot.tricks, ['spin', 'sit'], 'Checking that sit and spin are added to the list of tricks.')
self.assertEqual(spot.__str__(), "Dog(name = Spot, tricks = ['spin', 'sit'])", 'Checking that a Spot prints correctly.')
myTests().main()
Checkpoint16.15.2.
Complete the following code to include a method named updateAttacks(attack) which appends the attack to the list of attacks.
Checkpoint16.15.3.
Correct the 7 errors in the following code. The program should create a class that prints the title and author of a book.
class is a reserved word and must be lowercase. class methods must include the self parameter as a reference to the current instance of the class. def __init__(self, title, author): Use dot notation with the self instance to access the title variable in the Book class. self.title = title Use dot notation with the self instance to access the author variable in the Book class. self.author = author Use dot notation with the self instance to access the title variable when using it in a string. self.title Use dot notation with the self instance to access the author variable when using it in a string. self.author Use the correct class name, in this case it is Book not new Book.
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return f"Your book is {self.title} by {self.author}"
book = Book("The Odyssey", "Homer")
print(book)
====
from unittest.gui import TestCaseGui
class myTests(TestCaseGui):
def testOne(self):
gatsby = Book("The Great Gatsby", "F. Scott Fitzgerald")
self.assertEqual(gatsby.__str__(), "Your book is The Great Gatsby by F. Scott Fitzgerald", "Testing Great Gatsby")
myTests().main()
Checkpoint16.15.4.
Correct all the errors in the following code. The program should create a class that prints the name the tricks the dog knows.
Checkpoint16.15.5.
Complete the following code to include a method named getTitle that returns the title and a method named getAuthor that returns the ‘author'.
Create the getTitle and getAuthor methods just as you would define a function. Include the self parameter and use the self instance with dot notation to access title and author, as needed.
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
# Create the methods using self to access the attributes
def getTitle(self):
return self.title
def getAuthor(self):
return self.author
book = Book("The Odyssey", "Homer")
print(book.getTitle())
print(book.getAuthor())
Checkpoint16.15.6.
Complete the following code to include a method named getTricks that returns the tricks list and a method named getName that returns the name when called.
Checkpoint16.15.7.
Add a new class named Paperback that extends the Book class. Add a method named __str__ within Paperback that sends a string representation for the Paperback book, reading "Paperback book [TITLE] was written by [AUTHOR]".
Create the Paperback class just as you did the Book class, but use the Book class as the parameter. Define the __str__ function as usual, using instances from the parent class.
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def getTitle(self):
return self.title
def getAuthor(self):
return self.author
# Create Paperback class, using Book class
class Paperback(Book):
def __str__(self):
return f"Paperback book {self.title} was written by {self.author}"
book = Paperback("The Odyssey", "Homer")
print(book)
Checkpoint16.15.8.
Update the new class named WaterType which inherits properties of the Pokemon class. Add the following three methods to WaterType: updateAttacks appends the attacks list with a new attack, getName returns the name, and getAttacks returns the attacks when called.
Checkpoint16.15.9.
Add a new class named WaterType that inherits from Pokemon class. that takes ‘name' as initial values, creates an instance of Pokemon with type as ‘water' by default and stores the instance in a list named ‘watertypes'. Also create a method called ‘addPokemons' which takes ‘name' as arguments, creates an instance of Pokemon and stores it in ‘watertypes'. Also create ‘__str__' that returns the string representation of the object that includes the ‘watertypes' list.