In Python, both functions and methods are used to perform actions or computations. However, they have distinct differences in how they are defined, accessed, and used. In this guide, we'll explore the concept of functions and methods in Python and highlight the key differences between them, including sample code.


Functions in Python are blocks of reusable code that can take arguments, perform actions, and return values. They are defined using the def keyword and can be accessed globally in the program. Functions can be defined outside of any class and can be imported and used in different parts of the code.

# Defining a function
def greet(name):
return "Hello, " + name + "!"
# Calling the function
message = greet("Alice")


Methods in Python are functions that are associated with objects or classes. They are defined within classes and are accessed through instances of those classes. Methods can access and modify the internal state of the objects they are associated with. In Python, methods are called using the dot notation.

# Defining a class with a method
class Person:
def greet(self, name):
return "Hello, " + name + "!"
# Creating an instance of the class
person = Person()
# Calling the method
message = person.greet("Bob")

Differences between Functions and Methods

Here are the key differences between functions and methods in Python:

  • Location: Functions are defined globally, while methods are defined within classes.
  • Access: Functions can be accessed and used without the need for a class or instance, while methods are accessed through instances of classes.
  • Implicit First Argument: Methods have an implicit first argument, typically named self, which refers to the instance calling the method.
  • Modification of Object State: Methods can access and modify the internal state of the objects they are associated with, while functions operate independently.


Understanding the difference between functions and methods is essential in Python programming. Functions are versatile and independent blocks of code, while methods are tied to objects and classes, allowing them to operate on object-specific data. Both functions and methods have their unique use cases and are integral to the Python programming language.