Qu'est-ce qu'une méthode en Python ?

Une méthode est une fonction appartenant à un objet.

Par exemple pour trier une liste, vous pouvez utiliser la fonction sorted :

liste = [3, 4, 2, 1, 5]
liste = sorted(liste)

print(liste)

Mais on peut aussi utiliser la méthode sort, qui est disponible sur les objets de type list :

liste = [3, 4, 2, 1, 5]
liste.sort()

print(liste)

Pour utiliser une méthode, on a donc la syntaxe object.method() (le point indiquant l'appartenance de la méthode à l'objet).

Dans le cas de la méthode sort, la liste est directement modifiée, car c'est un objet muable. La méthode sort ne retourne rien, il ne faut donc pas faire liste = liste.sort() (en faisant cela, votre liste vaudrait None).

Une méthode est définie exactement comme une fonction (une méthode est une fonction).

Ce n'est donc qu'une question de terminologie.

Voici un exemple d'une fonction add et d'une méthode add, en tout point identique, sauf que la méthode est contenue à l'intérieur d'une classe :

# Fonction add
def add(a, b):
    return a + b

# La fonction add n'est associée à aucun objet, on l'utilise directement
print(add(5, 10))


class MathUtils:
    # Méthode add
    def add(self, a, b):
        return a + b


# La méthode add est associée à la classe MathUtils, on doit donc déjà créer une instance
utils = MathUtils()

# Puis, on utilise la méthode add sur l'instance créée
print(utils.add(5, 10))