Create Location Classes
00:00
Let’s begin with making a FarmLocation
class. I’m going to do that at the top of the script.
00:08
We’ll figure out what it has later on. I know that I’m going to want to have two child classes, a farm location that I’ll call Field
, and it’ll inherit from FarmLocation
.
00:22
And another one called Barn
that does the same.
00:30
This is my quick draft. I want a FarmLocation
parent class, and then two child classes, one called Field
and one called Barn
.
00:38
Let’s think about FarmLocation
. I had a couple of attributes that I want on here, so I’ll add them in an .__init__()
method, def __init__()
.
00:49
Take self
to create an object, and then at least I want to be able to say, how many spaces does one of these farm locations have for animals?
00:59
So that’s something that should be defined on the instance, because I could have a bigger Field
and a smaller Field
, or a bigger Barn
and a smaller Barn
.
01:07
So I’ll assign self.spaces
to the value of the argument that you’ll have to pass in when creating a FarmLocation
instance. Then it should have a space to hold animals, but this is not really something that we need to pass as an argument.
01:24
So this again, is going to be an instance attribute self.animals
, but I don’t need to pass it in. So I’m just going to make this a list, an empty list object here, so that each instance of FarmLocation
is going to have its own list that then I can somehow fill up with animal objects up to a certain amount until it hits the limit of spaces that this specific instance has.
01:52
In the Animal
parent class, I kind of defined the .animal_type
, started it off with None
, and I modeled it as a class attribute and also talked a little bit about potential issues with that.
02:04
And just for the fun of it, I’m thinking it could be nice to have some sort of .location_type
also for farm locations, but to show you like how you can do things differently in OOP, I’m going to model it a bit differently for the farm locations.
Become a Member to join the conversation.