Exercises
The __init__ Method
3 tasks. Write the code, press Check, and the page runs it against a real Python interpreter.
Exercise 1Passed
Give Dog an __init__ taking name and age, then print both for Rex aged 3.
Python
class Dog:
pass
rex = Dog("Rex", 3)
print(rex.name, rex.age)The parameters come after self, and you store them on self.
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
rex = Dog("Rex", 3)
print(rex.name, rex.age)Exercise 2Passed
Fix the shared list so each dog gets its own tricks.
Python
class Dog:
tricks = []
def __init__(self, name):
self.name = name
rex = Dog("Rex")
fido = Dog("Fido")
rex.tricks.append("sit")
print(fido.tricks)Build the list inside __init__ so every object gets a fresh one.
class Dog:
def __init__(self, name):
self.name = name
self.tricks = []
rex = Dog("Rex")
fido = Dog("Fido")
rex.tricks.append("sit")
print(fido.tricks)Exercise 3Passed
Reject an empty name with a ValueError so an invalid dog can never exist.
Python
class Dog:
def __init__(self, name):
self.name = name
try:
Dog("")
print("no error")
except ValueError as problem:
print("ValueError:", problem)Check before assigning, and raise.
class Dog:
def __init__(self, name):
if not name:
raise ValueError("a dog needs a name")
self.name = name
try:
Dog("")
print("no error")
except ValueError as problem:
print("ValueError:", problem)