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 :

Methode statique en python


Sujet :

Python

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut Methode statique en python
    Bonsoir,

    1. Quelle est le role d'une methode statique dans une classe en python?

    2. Quand est-ce que je peux creer une methode statique en python ?



    Merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 681
    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 681
    Par défaut
    Salut,

    Citation Envoyé par calito Voir le message
    1. Quelle est le role d'une methode statique dans une classe en python?
    2. Quand est-ce que je peux creer une methode statique en python ?
    Une "méthode statique" sera une fonction rangée dans une boîte "class" (plutôt que dans une boîte "module"). Comme pour les méthodes de "class" pas besoin d'instancier un objet de la classe pour pouvoir l'appeler: la différence sera qu'elle ne recevra pas la classe en premier argument.
    L'autre différence est qu'on pourra surcharger une méthode de classe (dans une s/classe) alors que ce sera plus difficile pour une fonction statique puisqu'il faudra désigner explicitement sa class.

    Pour le reste, vous disposez d'un tas de tiroirs: module, classe, instance,... pour y ranger les déclarations de vos fonctions/méthodes. Dans 95% des cas, savoir dans quel tiroir ranger une fonction/méthode donnée va s'imposer naturellement. Dans les 5% restants, ce sera plutôt arbitraire.
    En guise d'illustration, exemples,... le plus simple est de regarder comment sont codés les modules Python "standards" et voir comment ils utilisent ces fonctionnalités.

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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Une "méthode statique" sera une fonction rangée dans une boîte "class" (plutôt que dans une boîte "module"). Comme pour les méthodes de "class" pas besoin d'instancier un objet de la classe pour pouvoir l'appeler: la différence sera qu'elle ne recevra pas la classe en premier argument.
    L'autre différence est qu'on pourra surcharger une méthode de classe (dans une s/classe) alors que ce sera plus difficile pour une fonction statique puisqu'il faudra désigner explicitement sa class.

    - W
    Merci pour tes explications.

    Je viens de faire un exemple, juste pour essayer de comprendre son utilité. Mais j'ai remarqué que je peux l'appeler dans la fonction main:

    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
    35
    36
    37
    38
     
     
    class Ecole:
     
        compteur_eleve = 0
     
        def __init__(self):
            self.classe = None
            self.liste_eleve = {}
     
        def __str__(self):
            return self.classe
     
        def affichage_liste(self):
            dicttio = self.liste_eleve
            for k in dicttio.keys():
                return "{} | {:4} | {:4}".format(k,dicttio[k])
     
        @staticmethod
        def ajouter_eleve(une_classe,nom,prenom,liste):
            # Pour le numero des eleves
            Ecole.compteur_eleve += 1
     
            # Dictionnaire dont une clé est un tuple[numero de l'eleve, son nom]
            liste[Ecole.compteur_eleve,une_classe] = nom + " " + prenom
     
    if __name__ == '__main__':
     
        la_classe = str(input("Entrer une classe : "))
     
        nom_de_classe = Ecole()
        nom_de_classe.classe = la_classe
     
        # Appellation de la methode statique
        Ecole.ajouter_eleve(la_classe,"Jean","Natacha",nom_de_classe.liste_eleve)
     
        # Afficher le dictionnaire
        print(nom_de_classe.affichage_liste())

Discussions similaires

  1. probleme accès methode statique
    Par jpsegret dans le forum Langage
    Réponses: 5
    Dernier message: 02/04/2007, 15h40
  2. namespace VS methodes statiques
    Par olive_le_malin dans le forum C++
    Réponses: 5
    Dernier message: 16/03/2007, 14h14
  3. Réponses: 2
    Dernier message: 02/05/2006, 14h34
  4. Methodes statiques
    Par romeo9423 dans le forum C++
    Réponses: 3
    Dernier message: 01/02/2006, 11h30
  5. [Singleton] difference singleton classe avec methodes statiques
    Par matN59 dans le forum Design Patterns
    Réponses: 6
    Dernier message: 15/01/2006, 11h04

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