La programmation orientée objet a de nombreux avantages, mais le premier est l'encapsulation. 
Cela veut dire que l'objet est en quelque sorte autonome, il contient tout ce dont il a besoin pour fonctionner en lui-même.
Tout est 

De plus, au niveau du sens, l'orienté objet est en général plus clair :
<code type="python">fermer(maPorte)
maPorte.fermer()</code>
Comment savoir si la fonction <police nom="optima">fermer</police> ferme des portes ou des pots de confiture ?
Si vous vous trompez, il y a des chances pour que la fonction essaie de faire quelque chose de normal sur un pot de confiture (<police nom="optima">raclerLesBords</police> par exemple), mais mauvais pour une porte. 
Avec la méthode intégrée à l'objet, pas d'ambiguïté.
Le code que vous écrivez est aussi