Effective PyCharm Transcripts
Chapter: The Editor
Lecture: Object-oriented features
0:00 Python is a great language, it has super support for object oriented programming but it's
0:05 not always required when you are using object only the programming though.
0:10 It's really cool that PyCharm has fantastic support for understanding the entire type.
0:16 archy sometimes this is super obvious because it's just one file like we have here with a creature, wizard, small animal and dragon.
0:24 But imagine we broke this apart. We have a file that contains the wizard and maybe one that contains a small animal
0:30 and another one that contains different types of dragons. All of a sudden what piece applies where not super clear.
0:37 We've got our creature based class and we were wizard and our small animal in our
0:41 dragon, you can see the wizard adds an attack function but doesn't override anything.
0:47 The small animal actually changes what get defensive role which it inherited from creature means. And the dragon also changed get defensive role,
0:58 you can see all these little owes with up arrows and down arrows.
1:03 These down arrows are meaning it's overridden and the red up arrows mean it's overriding in
1:11 this location. So creature is overriding the Dunder wrapper special method. The small animal is overriding get defensive role.
1:19 That's good information right? It's good to have these here like oh this is actually
1:22 you know, we don't have virtual and override as keywords in Python but you can
1:26 kind of see that that's happening here but there's more to it if we actually hover over them on the left here,
1:32 we hover over this, it'll say we're overriding This is the repr one can't really
1:37 see it, can you says this overrides the repr method in object over here, if we hover over the dragon's get defensive role,
1:46 it says it overrides the method in the creature class and if we go to the creature class we get something even cooler.
1:54 It says this method, get defensive role is being overridden by two things that derive from you small animal and dragon.
2:03 So in this sense, these things are very helpful about knowing how these pieces are
2:07 working together. What thing is replacing the behavior of a base class, What thing is actually changing what it's getting from the particular class,
2:16 you're focused on an example of a creature, the small animals, changing what that means.
2:19 So be aware that as you work on it and if you actually click on it I give you click where it says override Method,
2:26 an object, it'll jump you over to the base class. Dunder repr in this case here is where that code lives.
2:33 And in the Dunder reprs actually implemented in c Python. So you just get this stub thing, the built ins. But nonetheless,
2:41 as we click around on those little spots, we actually navigate from base class, derive class so,on.