Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Well done!
      You have completed Basic Object-Oriented Python!
      
    
You have completed Basic Object-Oriented Python!
Preview
    
      
  Learn how to add functions to a class in Python.
- Methods - functions inside of classes. They take self as an argument.
- Calling a method - instance_name.my_method()
- Passing in values - instance_name.my_method(‘some value’)
- Calling a method inside of another - use self.my_method()instead ofinstance_name.my_method()(sinceselfessentially equalsinstance_name)
- Using an attribute - self.my_attributewhen inside your class
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
                      In object-oriented Python, a function
inside of a class is called a method.
                      0:00
                    
                    
                      In this video, we're going to dive
into how to add methods to a class,
                      0:07
                    
                    
                      pass in arguments and call a method.
                      0:12
                    
                    
                      Let's start by adding
a method to this car class.
                      0:15
                    
                    
                      It will be called stop
                      0:19
                    
                    
                      The format is the same as
a regular function, but
                      0:31
                    
                    
                      it needs to take self as an argument.
                      0:34
                    
                    
                      All methods inside of a class will need to
take self, otherwise it'll throw an error.
                      0:37
                    
                    
                      Inside of our method,
let's just print out "The car has stopped".
                      0:44
                    
                    
                      Let's jump down here and call our method.
                      0:54
                    
                    
                      In order to call it,
we will need our instance and
                      0:59
                    
                    
                      dot notation plus
the name of the function.
                      1:02
                    
                    
                      So, car_one.stop().
                      1:04
                    
                    
                      Run the file.
                      1:12
                    
                    
                      And voila, it printed out our message.
                      1:15
                    
                    
                      Now, what if we needed to pass
in information to our method?
                      1:21
                    
                    
                      How do we do that?
                      1:25
                    
                    
                      Well, it works just like
a regular function.
                      1:27
                    
                    
                      Let's create a new method called go.
                      1:30
                    
                    
                      It'll take self and a speed argument.
                      1:41
                    
                    
                      And then print out an f string,
"The car is going" and pass in the speed.
                      1:46
                    
                    
                      Cool, now let's call this method a few
times and pass in a few different speeds.
                      2:01
                    
                    
                      Go ahead and try it on your own,
pass in whatever speeds you like.
                      2:07
                    
                    
                      Okay, so we've tackled creating a method,
                      2:30
                    
                    
                      calling a method and
passing an argument so far.
                      2:33
                    
                    
                      It's time for
you to give it a go on your own.
                      2:38
                    
                    
                      Create a class, add a method that
takes at least one argument.
                      2:41
                    
                    
                      Give it some logic or
a simple print statement and then call it.
                      2:45
                    
                    
                      If you get stuck, rewind me and
rewatch this video.
                      2:50
                    
                    
                      It's okay if it takes you a few times for
things to click.
                      2:54
                    
                    
                      I'll see you back here in a bit.
                      2:57
                    
                    
                      Back?
                      3:03
                    
                    
                      Let's keep going.
                      3:04
                    
                    
                      A powerful thing about classes is
we can use our attributes inside of
                      3:06
                    
                    
                      any method we have.
                      3:10
                    
                    
                      Let's add a new instance attribute
called is moving and set it to false.
                      3:12
                    
                    
                      Instance attributes don't
always have to be passed in.
                      3:25
                    
                    
                      Now we can adjust our stop and
                      3:30
                    
                    
                      go methods to check this attribute
first before printing a message.
                      3:32
                    
                    
                      That way we don't tell
a stopped car to stop more cuz
                      3:38
                    
                    
                      that wouldn't really make any sense.
                      3:42
                    
                    
                      In our stop method,
let's check if the car is moving.
                      3:46
                    
                    
                      If it is,
let's print out that the car has stopped
                      3:57
                    
                    
                      And then set our is
moving attribute to false
                      4:03
                    
                    
                      Otherwise, let's let them know
the car has already stopped.
                      4:12
                    
                    
                      Inside of our go method,
let's do something similar.
                      4:33
                    
                    
                      If is moving is false, which means
we need to check for, not is moving.
                      4:38
                    
                    
                      Then let's let the user know
the car has started moving and
                      4:48
                    
                    
                      set the attribute to true.
                      4:52
                    
                    
                      We can print out the car's speed
outside of the statement, so
                      5:09
                    
                    
                      the speed can be changed
if the user wants.
                      5:13
                    
                    
                      Nice.
                      5:16
                    
                    
                      Let's call both methods a few
times to see our work in action.
                      5:18
                    
                    
                      Run the file.
                      5:36
                    
                    
                      Take a minute to follow the logic
of what's happening in the console
                      5:39
                    
                    
                      with the code you just wrote.
                      5:45
                    
                    
                      For example, when is instance is created,
is moving is set to false.
                      5:47
                    
                    
                      So when stop is called, we get the
                      5:56
                    
                    
                      "The car is all ready stopped" message.
                      6:02
                    
                    
                      When go is called,
is_moving is set to True and
                      6:06
                    
                    
                      we get "The car starts moving" and
our speed message.
                      6:12
                    
                    
                      Keep following the rest
of the logic on your own.
                      6:18
                    
                    
                      This helps you make sure you know
what is happening with your code.
                      6:22
                    
                    
                      Go ahead and pause me.
                      6:25
                    
                    
                      Nice work.
                      6:29
                    
                    
                      One last challenge to tackle.
                      6:31
                    
                    
                      If the car is moving,
then it's using up gas.
                      6:33
                    
                    
                      Let's create a new instance
attribute called gas.
                      6:38
                    
                    
                      Now let's create a method called use_gas.
                      6:46
                    
                    
                      Inside of the method, reduce the gas
value by 50, to make it easier to test.
                      7:04
                    
                    
                      Then return False if the self.gas
value is less than or equal to zero.
                      7:18
                    
                    
                      And True, if there's still gas.
                      7:31
                    
                    
                      Now we can use this method
inside our go method.
                      7:38
                    
                    
                      If the car is moving,
                      7:43
                    
                    
                      then we need to call our use_gas method
to reduce the amount of gas we have.
                      7:45
                    
                    
                      If we are out of gas then
the car cannot move at all.
                      7:51
                    
                    
                      At the start of this method,
                      7:56
                    
                    
                      let's check if we have gas by calling
the method using self in an if statement.
                      7:58
                    
                    
                      This both calls the method and
                      8:08
                    
                    
                      lets us know if we still
have gas at the same time.
                      8:11
                    
                    
                      If we have gas,
then we can run the logic we already had.
                      8:16
                    
                    
                      Otherwise, we need to let the user
know they've run out of gas and
                      8:24
                    
                    
                      call the stop function to stop the car.
                      8:29
                    
                    
                      Go ahead and run the file to see
what's changed in the console.
                      8:45
                    
                    
                      Take a minute again to think through
what's happening in the console and
                      8:54
                    
                    
                      follow the logic in your code.
                      8:58
                    
                    
                      When you feel comfortable that
you understand what's happening,
                      9:01
                    
                    
                      then unpause me.
                      9:04
                    
                    
                      It's recap o'clock.
                      9:08
                    
                    
                      In this video,
                      9:11
                    
                    
                      you've learned how to add functions to
your class, which are called methods.
                      9:12
                    
                    
                      They follow the same syntax
as regular functions, but
                      9:17
                    
                    
                      are placed inside of a class and
take self as an argument.
                      9:21
                    
                    
                      You can pass in values to a method,
call other methods
                      9:27
                    
                    
                      inside of one and
access attributes of your class.
                      9:33
                    
                    
                      When calling a method, you use dot
notation on an instance of the class.
                      9:44
                    
                    
                      Don't forget to pass in values
if the method calls for them.
                      9:50
                    
                    
                      Try out what you've learned so
far on your own.
                      9:55
                    
                    
                      Create your own class, add attributes,
methods and play around.
                      9:58
                    
                    
                      This is how you learn and
solidify your new knowledge.
                      10:03
                    
                    
                      Also, try helping someone else.
                      10:08
                    
                    
                      Nothing helps us realize
how much we know or
                      10:11
                    
                    
                      don't know, by helping someone else learn.
                      10:14
                    
                    
                      Lastly, never feel bad if
you need to rewatch a video.
                      10:18
                    
                    
                      Some concepts may be harder than others
and there's no judgment on how many
                      10:22
                    
                    
                      times you needed to watch a video
before the concept finally clicked.
                      10:27
                    
                    
                      Take as long as you need and
reach out if you hit a roadblock.
                      10:31
                    
                    
                      We're here to help.
                      10:35
                    
              
        You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up