#100DaysOfWeb in Python Transcripts
Chapter: Appendix: Python language concepts
Lecture: Concept: Classes
0:01 Classes and object-oriented programming are very important parts of modern programming languages and in Python, they play a key role.
0:09 Here we are creating a class that we can use in some kind of game or something that works with creatures.
0:16 So to create a creature class, you start with the keyword class, and then you name the type and you say colon and everything indented into that block
0:24 or that code suite to do with the class is a member of the class. Most classes need some kind of initialization to get them started,
0:31 that's why you create a class, we want them to start up all ready to go and bundled up with their data and then combine that with their methods,
0:39 their behaviors and they make powerful building blocks in programming. So most classes will have an initializer,
0:46 and the initializer is where you create the variables and validate
0:49 that the class is getting setup in correct way, for example making sure the name is not empty,
0:53 the level is greater than zero, but less than a 100, something like that. Now this is often refered to as __init__ sometimes just init,
1:02 or even a constructor and these dunder methods because they have double underscores at the beginning and at the end,
1:08 they are part of the Python data model which lets us control many things about classes,
1:11 so you'll see a lot of methods like this but the __init__ method is probably the most common on classes.
1:17 If you want to create behaviors with your class, and if you have a class that's almost certainly part of what you are going to do,
1:23 you are going to define methods just like functions that are standalone, methods or functions that are parts of classes
1:30 and you define them in exactly the same way, the only difference is typically they take a self parameter,
1:36 the self parameter is passed explicitly everywhere when you are defining the class,
1:41 some languages have a "this" pointer, that's sort of implicit but in Python,
1:46 we call this self and it refers to the particular instance of the creature that exists,
1:51 you might have many creatures but the self is the one that you are working with currently. So just be aware you have to pass that explicitly everywhere
1:59 unless you have what is called a class method or a static method.