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 :

1. Héritage d'une fonction 2. Chgt de l'ordre d'une liste


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Novembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Novembre 2017
    Messages : 20
    Par défaut 1. Héritage d'une fonction 2. Chgt de l'ordre d'une liste
    Bonjour à tous,

    Deux rapides questions :

    * Héritage d'une fonction

    J'ai créé une class MaClassGenerale à la partir de laquelle je crée plusieurs class particulières MaClassParticuliere1, MaClassParticuliere2 , etc. Les class particulières héritent bien des propriétés définies dans MaClassGenerale.__init__() vu que j'appelle la fonction dans l'__init__() de chaque class particulière. Mais peut-on leur faire hériter d'une fonction qui a le même nom qu'une de leurs propres fonctions ?

    Plus précisément :

    - MaClassGenerale a une fonction calcul()
    - certaines class MaClasseParticuliereX ont aussi une fonction calcul()

    je voudrais que quand je fais objet.calcul() sur un objet de MaClasseParticuliereX :
    - il aille d'abord dans MaClasseGenerale.calcul()
    - et ensuite dans MaClasseParticuliereX.calcul()

    Pour l'instant, il ne va dans MaClassGenerale.calcul() que si MaClassParticuliereX de l'objet n'a pas de fonction calcul(). Est-ce que je dois aussi "appeler" la fonction de la class Parent au début de la class "enfant" ?

    * Changement de l'ordre d'une liste


    J'ai une liste [0,1,2,3,4,5,6,7,8,9] et je voudrais que l'élément 6 devienne le premier, sans que l'ordre des autres ne change. C'est à dire obtenir une liste [6,0,1,2,3,4,5,7,8,9].

    Quel est le moyen de le faire le plus efficacement ? Je pensais :
    - faire un deque plutôt qu'une liste "normale"
    - suite.remove(6)
    - suite.addleft(6)

    Mais il y a peut être une solution plus simple/efficace ?

    Merci d'avance pour votre aide !

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

    Citation Envoyé par DolceVita83 Voir le message
    Pour l'instant, il ne va dans MaClassGenerale.calcul() que si MaClassParticuliereX de l'objet n'a pas de fonction calcul(). Est-ce que je dois aussi "appeler" la fonction de la class Parent au début de la class "enfant" ?
    Dans une class, les machins déclarés avec "def" s'appellent méthodes (et non fonction). Et si A hérite de B surcharge la méthode "calcul", il peut appeler (ou pas) la méthode des class parentes via super().calcul(...)
    Pour les détails, vous avez pleins de tutos qui expliquent fonctionnement et terminologie.

    Citation Envoyé par DolceVita83 Voir le message

    * Changement de l'ordre d'une liste


    J'ai une liste [0,1,2,3,4,5,6,7,8,9] et je voudrais que l'élément 6 devienne le premier, sans que l'ordre des autres ne change. C'est à dire obtenir une liste [6,0,1,2,3,4,5,7,8,9].
    deque paraît plus efficace mais vous pouvez mesurer le temps que çà met dans l'un ou l'autre cas.

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

  3. #3
    Membre averti
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Novembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Novembre 2017
    Messages : 20
    Par défaut
    D'accord, merci

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par DolceVita83 Voir le message
    J'ai une liste [0,1,2,3,4,5,6,7,8,9] et je voudrais que l'élément 6 devienne le premier, sans que l'ordre des autres ne change. C'est à dire obtenir une liste [6,0,1,2,3,4,5,7,8,9].
    Solution possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    L = [0,1,2,3,4,5,6,7,8,9]
    L = [L.pop(6)] + L
    print(L)
    [6, 0, 1, 2, 3, 4, 5, 7, 8, 9]

Discussions similaires

  1. Réponses: 17
    Dernier message: 16/07/2012, 14h10
  2. Réponses: 1
    Dernier message: 27/03/2012, 17h14
  3. Renommer une fonction dans un select ou concevoir autrement une fonction
    Par tavarlindar dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 30/05/2008, 17h17
  4. Réponses: 8
    Dernier message: 29/06/2006, 15h37
  5. Réponses: 2
    Dernier message: 01/11/2005, 18h47

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