Adding Coat Color (Solution)
00:00
Here I am back in the Dog
class. The task was to add an instance attribute, .coat_color
, that should be a string. That was actually the whole task.
00:16
And then test it out. All right, let’s go ahead and do that. I’ll start off by adding the instance attribute. Where you add instance attributes is in this standard .__init__()
method. So additionally, to .name
and .age
, you want a third attribute that someone needs to pass when creating a dog, and that’s going to be .coat_color
.
00:39
Adding it to the parameters here in the method definition. And that also means that if you are creating a Dog
instance, you’re going to have to now pass .coat_color
.
00:49 But so far I’m not doing anything with it. So I will add a new line where I will assign it back to the instance under an instance attribute that I’ll name the same. You know, it could be something else, but it usually makes sense to keep this the same because it makes the code more understandable.
01:06
So I will assign the attribute that you pass in when creating a Dog
instance to self.coat_color
. I think that’s already it. Let’s give it a spin.
01:19 I will rerun this file pressing F5 in IDLE. And then again, it gives me this interactive way to explore this some more. So I’m going to now create a new dog.
01:29
If I create philo
again with only two arguments, then this should fail. Fail. And there you go. It says that it’s missing one required positional argument, coat_color
. Perfect.
01:40
That’s what I was expecting. So let’s give it the right age of 5
and then the coat_color
of brown. I forgot to close the string.
01:53
One more time. It’s a little strange because it’s not very well visible. It’s a bit better now. So we have a Dog
instance that I’m passing three arguments, a name
, an age
, and a coat_color
.
02:06
And this should now create fine. It does. And now philo.coat_color
gives me back brown
. Perfect. So now there was like an f-string to print this out.
02:31
and their "coat is {philo.coat_color}"
. So this is just an f-string now, and that should print out the right string, Philo's coat is brown.
I want to add this .coat_color
also to the .__str__()
method because currently when I print(philo)
, it still just gives me information about their name and age.
02:55
And now I’m just going to add a bit of information at the end of the .__str__()
method.
03:12
It was a little long, so it doesn’t all display in here, but if I save and rerun this, I should now be able to print(philo)
and also get its coat color right away.
03:23
print(philo)
. Philo is 5 years old and their coat is brown.
And that finishes this exercise. We created an instance attribute called .coat_color
and then went ahead and tested it as well. Looks good.
03:42 Are you feeling warmed up? In the next lesson, you’ll wrap up the review exercises and then move on to the challenges.
Become a Member to join the conversation.