IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Classes d'objets, paramètres, méthodes associées ? [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut Classes d'objets, paramètres, méthodes associées ?
    Bonjour à tous.tes,

    Au cours des exercices que je pratique pour apprendre "Python", je suis sensé tenir un cahier de notes :

    Etablir un tableau à deux colonnes pour y noter à gauche les définitions des classes d'objets déjà rencontrées (avec leur liste de paramètres),
    et à droite les méthodes associées à ces classes (également avec leurs paramètres).

    J'ai encore beaucoup de mal avec ces éléments du langage.
    Pour me mettre sur la piste, pourriez vous m'en identifier quelques un dans le code ci-joint.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Petit exercice utilisant la bibliothèque graphique tkinter
    from tkinter import *
    from random import randrange
    # --- définition des fonctions gestionnaires d'événements : ---
    def drawline():
    "Tracé d'une ligne dans le canevas can1"
    global x1, y1, x2, y2, coul
    can1.create_line(x1,y1,x2,y2,width=2,fill=coul)
    # modification des coordonnées pour la ligne suivante :
    y2, y1 = y2+10, y1-10
    def changecolor():
    "Changement aléatoire de la couleur du tracé"
    global coul
    pal=['purple','cyan','maroon','green','red','blue','orange','yellow']
    c = randrange(8) # => génère un nombre aléatoire de 0 à 7
    coul = pal[c]
    #------ Programme principal -------
    # les variables suivantes seront utilisées de manière globale :
    x1, y1, x2, y2 = 10, 190, 190, 10 # coordonnées de la ligne
    coul = 'dark green' # couleur de la ligne
    # Création du widget principal ("maître") :
    fen1 = Tk()
    # création des widgets "esclaves" :
    can1 = Canvas(fen1,bg='dark grey',height=200,width=200)
    can1.pack(side=LEFT)
    bou1 = Button(fen1,text='Quitter',command=fen1.quit)
    bou1.pack(side=BOTTOM)
    bou2 = Button(fen1,text='Tracer une ligne',command=drawline)
    bou2.pack()
    bou3 = Button(fen1,text='Autre couleur',command=changecolor)
    bou3.pack()
    fen1.mainloop() # démarrage du réceptionnaire d'événements
    fen1.destroy() # destruction (fermeture) de la fenêtre
    Conformément à
    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Pour les classes : Canvas, Button et Tk
    Pour les paramètres de Canvas: fen1,bg, height, width
    Pour les méthodes de Canvas : create_oval

    Les classes c'est comme un moule permettant de construire de multiples objets
    Les paramètres sont les valeurs qui sont utiles à la construction de l'objet
    Les méthodes sont les actions appliquées par l'objet une fois construit

  3. #3
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Merci à tous les deux pour votre aide,

    Citation Envoyé par fred1599 Voir le message
    ...
    Pour les classes : Canvas, Button et Tk
    ...
    Citation Envoyé par Sve@r Voir le message
    ...
    Une classe c'est un objet, définie avec le mot clef "class"
    ...
    Ou ce trouve pour mon exercice la définition (par le mot clef "class") des classes : Canvas, Button et Tk ?
    Dans le module Tkinter ?

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par scalpel Voir le message
    Ou ce trouve pour mon exercice la définition (par le mot clef "class") des classes : Canvas, Button et Tk ?
    Dans le module Tkinter ?
    Oui. Dans ton cas précis, tu ne définis pas de classes, tu utilises juste des classes définies par d'autres développeurs et mises à ta disposition.

    Donc allant au plus simple: chaque fois que tu mets des parenthèses, comme par exemple dans la ligne 22 fen1 = Tk(), tu fais appel soit à une fonction, soit à une classe (et en Python la distinction entre les deux est assez faible).
    Si ensuite tu peux appliquer l'opérateur "point" à la variable créé pour lui associer une action (comme en ligne 32 fen1.mainloop()) alors c'est que tu as une classe.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour

    En python toute variable est un objet et chaque objet à un type, tu peux voir "le type" comme une classe.

    Note: il est toujours bon de lire la doc

    Citation Envoyé par scalpel Voir le message
    classes d'objets déjà rencontrées
    Je ne comprends pas cette notion ... rencontrés dans les cours ? donc str et int ?

  6. #6
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Merci, je commence à mieux comprendre.

    Je vais pouvoir commencer à enrichir le tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    # Classes d'objets rencontrées dans les exercices (avec leur liste de paramètres), ainsi que les méthodes associées
    # à ces classes (également avec leurs paramètres).
    #------------------------------------------------------#-------------------------------------------------------------#
    #             Classes d'objets plus paramètres         #           Méthodes associées plus paramètres     --         #
    #------------------------------------------------------#-------------------------------------------------------------#
    #  Canvas :  fen1, bg, height, width                      create_oval : x0 ,y0 ,x1 ,y1 ,width, outline
    #                                                         create_line : x0 ,y0 ,x1 ,y1 ,width, fill 
    #                                                         can1.create_arc : x0 ,y0 ,x1 ,y1 ,width, fill 
    #                                                         can1.create_rectangle : x0 ,y0 ,x1 ,y1 ,width, fill 
    #                                                         can1.create_oval : x0 ,y0 ,x1 ,y1 ,width, fill
    #                                                         can1.create_polygon: x0 ,y0 ,x1 ,y1 ,width, fill, outline
    #                                                         pack : side
    #------------------------------------------------------#-------------------------------------------------------------#
    #  Button :  fen1, width, text                            command
    #------------------------------------------------------#-------------------------------------------------------------#
    #  Label : fen1, text
    #------------------------------------------------------#-------------------------------------------------------------#
    #  Tk() : title                                           mainloop
    #------------------------------------------------------#-------------------------------------------------------------#

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par scalpel Voir le message
    # Tk() : title
    Je n'ai pas tout lu mais ici c'est faux. Puisque la classe Tk est appelée sans rien dans les parenthèses (ligne 22 fen1 = Tk()) cela veut dire qu'il n'y a pas de paramètre "title"...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par scalpel Voir le message
    J'ai encore beaucoup de mal avec ces éléments du langage.
    Une classe c'est un objet, définie avec le mot clef "class".
    Cet objet est initialisé à sa création par la méthode __init__(). Cette méthode prend en premier paramètre l'instance de l'objet créé (communément appelé "self") et ensuite les éléments éventuels que l'on veut faire traiter à l'initialisation de l'objet.
    Une méthode c'est une fonction définie dans l'objet permettant à l'objet d'effectuer une action quelconque (un calcul, une mise à jour, etc). Cette fonction prend bien évidemment en premier paramètre l'instance de l'objet à traiter (là encode "self") puis des éléments de travail éventuels.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par scalpel Voir le message
    J'ai encore beaucoup de mal avec ces éléments du langage.
    Pour me mettre sur la piste, pourriez vous m'en identifier quelques un dans le code ci-joint.
    C'est typiquement le genre d'exercice qui vient après un cours où sont justement définis ces "éléments". Votre premier boulot sera de relire le cours/chapitre... et si vous vous posez des questions, raconter pourquoi.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  10. #10
    Membre confirmé Avatar de scalpel
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Novembre 2008
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2008
    Messages : 157
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    C'est typiquement le genre d'exercice qui vient après un cours où sont justement définis ces "éléments". Votre premier boulot sera de relire le cours/chapitre... et si vous vous posez des questions, raconter pourquoi.
    Parce que j'utilise un très bon livre, mais qui est plus un support de cours utilisé par des profs et des étudiants, qu'un livre pour autodidacte.
    J'ai 62 ans, je n'ai jamais programmé, je viens juste de démarrer et j'avance seul.
    J'avoue que j'ai du mal et c'est très frustrant, je cherche un peu d'assistance sur le forum pour que l'apprentissage soit plus facile.
    J'aborde Python comme un loisir et effectivement je devrais avancer par moi-même.

    Malgré plusieurs relectures des différents chapitres, pour un débutant comme moi il est difficile d'identifier correctement : les classes, les objets, les méthodes associées à ces classes, etc.
    Puis j'aime bien échanger, mais je vais essayer de poser moins de questions

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/08/2010, 14h16
  2. classe statique objet
    Par drKzs dans le forum Langage
    Réponses: 8
    Dernier message: 04/09/2006, 11h58
  3. Réponses: 4
    Dernier message: 16/08/2006, 09h19
  4. approche objet en python...associer des classes.
    Par preacher_man dans le forum Général Python
    Réponses: 9
    Dernier message: 06/01/2006, 15h21
  5. Classes et objets...
    Par cyrpaut dans le forum Général Python
    Réponses: 2
    Dernier message: 20/11/2005, 20h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo