methode et fonction avec python
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

methode et fonction avec python



  1. #1
    hamhouda

    methode et fonction avec python


    ------

    bonjour ,
    je débute avec python , je ne comprend pas la différence entre un objet et une méthode , je cherche sur internet mais je ne trouve pas d'explication claire , et c'est quoi un objet au juste ? je voudrais une explications simple et net . Merci à vous

    -----

  2. #2
    fregoli

    Re : methode et fonction avec python

    Je vais essayer de répondre clairement et rigoureusement.

    Un "objet" est un composant qui possède
    • des propriétés (on dit aussi des attributs) qui peuvent prendre des valeurs, soit discrètes (par exemple si on parle d'un objet "individu": la propriété sexe peut prendre deux valeurs Homme ou Femme),soit "continues" (par exemple la taille qui peut être 1,82 ou 3,48), soit encore des types plus structurés (exemple une situation familiale qui comporte les informations sur la situation maritale (célib, marié, veuf(ve), divorcé, pacsé,...), la date de naissance, le lieu de naissance, nombre d'enfant,...)
    • des méthodes, ce qui signifie que le composant peut exécuter du code fixé (exemple de méthode: avoirUnenfant qui se traduira par diu code qui fera +1 sur le nombre d'enfants, créera l'individu enfant avec son sexe, date de naissance,.. et toutes les caractéristiques allant avec)
    • des évènements: c'est du code qui s'exécutera en fonction de l'arrivée d'un évènement (exemple d'évènement: mariage, qui se traduira par un code qui créerait (peut-être) l'objet couple, modifiera la propriété "situation familiale", etc...

    Un objet peut englober un autre objet, ce qui permet une chose intéressante: l'héritage. Si un objet A est défini à partir d'un objet B, alors automatiquement il va posséder les propriétés, méthode et évènement de l'objet B. C'est super utile pour réutiliser des objets existant car ils ont été testés et validés, donc "on peut compter sur eux".
    On pourra ajouter de nouvelles propriétés, méthodes ou évènements qui n'étaient pas définis pour l'objet initial.
    Quand on définit un objet à partir d'un objet existant, on peut aussi surcharger (c'est à dire réécrire ou compléter) les méthodes ou les évènements que l'objet initial possède, pour y rajouter des contrôles, des traitement ou des comportements plus complets. (exemple: l'objet individu ci-dessus avait une méthode "avoirUnEnfant" qu'on pourrait modifier en ajoutant du code supplémentaire (déclencher l'évènement "pleurer", etc..). Cet ajout ne détruit pas pour autant la méthode d'origine, simplement elle la masque vis à vis de l'extérieur, et la méthode d'origine de l'objet intégré peut très bien être déclenchée par l'objet intégrant.

    Il n'y a pas à réellement parler de différence conceptuelle entre un évènement et une méthode (sauf la manière de les déclencher), la vraie différence étant que, pour moi et en théorie, un évènement devrait créer le lancement d'un traitement en parallèle, indépendant du traitement qui a déclenché l'évènement, alors que la méthode s'exécute plutôt dans le même flot de traitement que celui qui a appelé la méthode.

    Mais tout ceci dépend surtout de l'implémentation du langage que tu utilise (et donc de la plateforme)

    Dans la pratique, un objet correspondra à un emplacement mémoire qui contient donc, les zones où sont stockées les valeurs des propriétés, et des zones contenant le code des méthodes et des évènement (avec les descripteurs qui vont bien pour décrire tout ça).

    Un objet est un modèle, et pour l'utiliser dans un programme, on doit l'instancier, c'est à dire disposer d'une variable (au sens informatique) qui possèdera donc toutes les propriétés, méthodes et évènements de l'objet en question.

    En général, mais ce n'est que pour éclairer les choses, on instancie une variable objet à l'aide de la fonction "new" qui existe dans beaucoup de langages de 3eme génération.
    Dans des langages de 5eme génération (exemple prolog) cette fonction new n'existe pas car tout est objet.

    Si on devait faire un parallèle avec des langage 3eme génération fortement typés, Pascal, PL1 par exemple, on objet est l'extension de la notion de type contenant du code associé aus méthodes et évènements.

    Voilà ce que je peux en dire, pour le moment, sans aller trop loin.
    Dernière modification par fregoli ; 15/06/2016 à 16h15.
    Une allumette peut aussi faire déborder le vase...

  3. #3
    CM63

    Re : methode et fonction avec python

    Bonjour,

    Un objet est le résultat de "l'instanciation" d'une classe. J'ai la classe "carré" (dans ma tête), lorsque je dessine un carré au tableau : je crée un objet de type carré, j'ai pour cela "instancié" la classe carré.
    Alors qu'une méthode est une fonction. C'est une fonction qui existe dans une classe. Lorsque je vais instancier cette classe, c'est-à-dire créer un objet de cette classe, cet objet possédera toutes les méthodes (fonctions) de cette classe.
    Par exemple un carré "sait" comment calculer sa surface ou son périmètre. On va faire (dans un langage imaginaire):

    Code:
    Classe Carré:
           méthode surface:
                je met le code calculant la surface
    
           méthode périmétre:
                je mets le code permettant de calculer le périmétre
    
    a=Carré(10) ! j'ai oublié d'écrire le constructeur de la classe et de déclarer les données membres : ici le coté du carré
    print a.surface()
    print a.périmétre()

  4. #4
    hamhouda

    Re : methode et fonction avec python

    Merci pour vos deux explications c'est beaucoup plus clair dans ma tete , mais j'ai commis un erreur dans ma question , ma question est la suivante : c'est qui la différence entre une fonction et une méthode .

  5. A voir en vidéo sur Futura
  6. #5
    hamhouda

    Re : methode et fonction avec python

    la premier exercice qu'on avait affaire était celui sur classe point très basique :
    Définir la classe point dont :
    les attributs sont : les coordonnées x et y
    les méthodes : DIstance qui renvoie la distance entre deux points"


    alors j 'ai deux petites questions :
    1ere question : pour définir la classe point on écrit :
    class Point :
    def__init__(self , x , y): "self "c'est quoi exactement c'est l'objet ?
    2eme question :
    lorsque j'ai voulu definir la méthode j'ai cru que c'étais comme une fonction normal ou on prend deux points comme variables mais en fait non

  7. #6
    fregoli

    Re : methode et fonction avec python

    En effet; "self" c'est un mot réservé du langage qui désigne l'objet lui même. (dans d'autres langage, ce serait "me" ou "this")
    Une allumette peut aussi faire déborder le vase...

  8. #7
    fregoli

    Re : methode et fonction avec python

    Citation Envoyé par hamhouda Voir le message
    une fonction et une méthode .
    Normalement, (mais que veut dire normalement) une méthode ne renvoie pas de valeur et une fonction en renvoie. Mais pour python, il n'y a pas de différence de syntaxe, donc une méthode et une fonction sont pareils (a l'exception de l'instruction return qu'une méthode n'utilise pas...), sauf dans leur utilisation ensuite.
    Une allumette peut aussi faire déborder le vase...

  9. #8
    Jack
    Modérateur

    Re : methode et fonction avec python

    une méthode ne renvoie pas de valeur et une fonction en renvoie
    Tu ne confondrais pas méthode et procédure par hasard? Parce qu'à priori, une méthode est une fonction membre d'un objet en POO.

  10. #9
    CM63

    Re : methode et fonction avec python

    Bonjour,

    Citation Envoyé par hamhouda Voir le message
    Merci pour vos deux explications c'est beaucoup plus clair dans ma tete , mais j'ai commis un erreur dans ma question , ma question est la suivante : c'est qui la différence entre une fonction et une méthode .
    Un méthode est une fonction associée à une classe, alors qu'une fonction est indépendante. Par exemple pour calculer le carré d'un nombre, on peut faire soit :

    - je définie une fonction que j'appelle "carre" qui prend comme argument le nombre, et je l'utilise comme ceci:
    Code:
    a=3
    b=carre(a)
    print b
    Soit on fait :

    - je défini une classe Nombre, et une méthode de cette classe : carre , et je fais:

    Code:
    a=Nombre(3) <- définition du nombre 3 en appelant le constructeur de la classe Nombre
    b=a.carre()
    print b
    Dans Python la classe Nombre n'existe pas, mais c'était un exemple pour t'expliquer.

  11. #10
    Bluedeep

    Re : methode et fonction avec python

    Citation Envoyé par Jack Voir le message
    Tu ne confondrais pas méthode et procédure par hasard? Parce qu'à priori, une méthode est une fonction membre d'un objet en POO.
    De manière générale, les termes "procedures" et "fonctions", issue de la programmation structurée pre-OO, on évite dans les employer avec les langages OO; le terme de "méthode" (qui peut retourner, ou pas, une valeur) est à privilégier : ça évite des ambiguïtés.

  12. #11
    Jack
    Modérateur

    Re : methode et fonction avec python

    Oui, absolument. Je n'ai employé le terme "procédure" qu'en réponse à "fonction qui ne renvoie pas de valeur"

Discussions similaires

  1. fonction mystere (python)
    Par afaf1995 dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 15/03/2016, 21h21
  2. Fonction ID3 python
    Par pedrolitoUA dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 19/09/2015, 18h01
  3. fonction (min d'une liste) (python)
    Par afaf1995 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 24/02/2014, 08h29
  4. Méthode des moindres carrés avec une fonction sinusoïdale
    Par invite353fb3ad dans le forum Mathématiques du supérieur
    Réponses: 50
    Dernier message: 20/09/2013, 15h21
  5. [PYTHON]Stopper une fonction
    Par patagouin dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 07/08/2012, 08h19