Licence CC BY-NC-ND
Thierry Parmentelat

objets, types et méthodes¶
Python est un paradigme orienté objet¶
cela signifie que toutes vos données sont des objets
entre autres choses chaque objet a un type
# en Python absolument toutes les données
# en mémoire sont des objets
# chaque objet possède (entre autres)
# un type
# un module
import math
# un nombre
x = 4 * math.pi
# une chaine
texte = "une chaine"
# une fonction
def fact(n):
return 1 if n <= 1 else n * fact(n-1)
type(x)
float
type(texte)
str
type(fact)
function
type(math)
module
méthode = fonction attachée à un type¶
lorsqu’on appelle un méthode sur un objet,
la syntaxe est donc
objet.methode(parametre)
ce qui se passe c’est que
on cherche la méthode à partir du type de
objet
on trouve une fonction, et on l’appelle
avec en premier argument l’objet
appel de méthode illustré¶
chaine = "bonjour"
chaine
'bonjour'
# la recherche de 'capitalize'
# à partir de `chaine`
# trouve une fonction rangée
# dans le type `str`
la_methode = str.capitalize
la_methode
<method 'capitalize' of 'str' objects>
# lorsqu'on écrit ceci
chaine.capitalize()
'Bonjour'
# c'est comme si on avait
# écrit
la_methode(chaine)
'Bonjour'
# si on passe des arguments
chaine.center(13, '-')
'---bonjour---'
# ils sont ajoutés après l'objet
str.center(chaine, 13, '-')
'---bonjour---'
à quoi ça sert ?¶
par rapport à un appel de fonction, 2 avantages
la résolution du nom de la méthode se fait à l’exécution
le même code se comporte différemment
sur des entrées de type différents
permet d’écrire du code plus générique
espaces de nom plus propres
pas besoin d’inventer des noms commestr_capitalize