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 :

métaclasse et héritage multiple


Sujet :

Python

  1. #1
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut métaclasse et héritage multiple
    Bonjour,

    l'héritage multiple dans le cas d'une métaclasse a-t-il un sens ?
    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    class C1(type, C2):
       pass
    ou est-ce que le fait d'hériter de type implique qu'il y a quasiment aucune chance d'hériter d'autre chose ?

    je pose la question pour savoir s'il est utile que j'ajoute un bouton metaclass dans l'éditeur de classe de Bouml qui remplacerait ${inherit} directement par (type) empêchant du même coup la prise en compte de tout autre héritage

    merci

    Bruno
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  2. #2
    Membre confirmé Avatar de sopsag
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 224
    Par défaut
    Je ne comprends pas bien ton problème de Bouml...

    En tous cas, l'héritage mutliple est parfaitement légal en Python.

    Pour les problèmes d'héritage en diamant (D hérite de B et C, et B et C héritent de A) je crois qu'il fait simple et brutal : c'est le premier déclaré qui gagne.

    Tout ça à prendre au conditionnel car je ne suis pas une référence en Python, loin de là...

    Hadrien

  3. #3
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par sopsag Voir le message
    En tous cas, l'héritage mutliple est parfaitement légal en Python
    je sais, le problème n'est pas là, je parle du cas très spécifique des metaclasses
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  4. #4
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    ben... t'as testé ? je veux dire simplement en python, en laissant ton soft de côté ?

    De prima bord, je dirais que c'est possible, du moment que type reste la premier héritage... J'avoue que je ne vois pas bien l'intérêt d'un héritage multiple sur une métaclasse, mais comme c'est encore relativement nouveau pour moi...

    EDIT: je viens de tester et un métaclasse peut très bien avoir un héritage multiple mais, le fait est qu'une metaclasse doit hériter de type (Ok), mais également redéfinir la méthode __new__, or il est impossible d'appeler une fonction d'une des classe héritée depuis __new__ étant donné qu'alors, aucune instance de la métaclasse (qui n'est qu'une classe) n'existe... pour appeler des méthodes ou des attributs d'autre classes, il faut soit : créer un instance de la classe voulue, ou bien directement appeler la méthode ou l'attribut en n'appelant que la classe en question (style "Foo.monAtrribut"). J'en conclut que l'héritage multiple pour un métaclasse est possible (du moment que type est le premier héritage), mais tout à fait inutile...

  5. #5
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par N.tox Voir le message
    ben... t'as testé ? je veux dire simplement en python, en laissant ton soft de côté ?
    mais oui, la question n'est pas de savoir si c'est légal, mais si cela à un sens
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  6. #6
    Membre émérite
    Homme Profil pro
    heu...
    Inscrit en
    Octobre 2007
    Messages
    648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : heu...

    Informations forums :
    Inscription : Octobre 2007
    Messages : 648
    Par défaut
    voir EDIT du message précédent

  7. #7
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    ok, cela rejoint ce que j'en pensais vu les 'délires' que j'avais du écrire pour vérifier que c'était légal, mais comme ne je ne connais pas Python je préférai avoir une confirmation plutôt que de me baser sur mes éventuelles errances

    merci
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  8. #8
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Citation Envoyé par bruno_pages Voir le message
    mais oui, la question n'est pas de savoir si c'est légal, mais si cela à un sens
    Justement, d'après moi, l'important est le contraire, savoir si c'est légal en python même si c'est rarement utilisé, et c'est légal.

    Si l'on commence à prendre en compte ce qui est utilisé ou pas, il faut savoir par quel pourcentage de personnes en moyenne et dans ce cas on peut même remettre en cause le fait d'intégrer l'héritage multiple qui est rarement utilisé.

  9. #9
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    il pas de problème, je voulais juste savoir si cela vaut le coup de proposer une facilité pour définir une métaclasse 'pure' n'héritant que de type, et la réponse est oui

    mon but n'est donc certainement pas d'empêcher la génération d'une classe héritant de type et d'autres classes ce qui restreindrait le champs d'application du langage
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  10. #10
    Membre Expert
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Par défaut
    La question est délicate.
    Technologiquement la préoccupation me paraît proche des possibilités de ClassTalk (variante de Smalltalk avec métaprotocole et héritage multiple).
    Pierre Cointe est un des spécialiste français de ce genre de questions qui intéressent peu de monde (pour cause de technologie trop peu disséminée).

    Un lien qui, sans répondre clairement à la question posée, pourrait être une piste à suivre :
    http://citeseerx.ist.psu.edu/viewdoc...=10.1.1.37.175

  11. #11
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 545
    Par défaut
    Citation Envoyé par SpiceGuid Voir le message
    ce genre de questions qui intéressent peu de monde (pour cause de technologie trop peu disséminée).
    il est clair qu'un langage comme Java qui non seulement interdit l'héritage multiple, mais en plus le justifie en disant que l'héritage multiple c'est mal et sacrilège et que ce point n'est pas à discuter, est une sorte de goulag imposant une pensée unique ne favorisant pas l'ouverture d'esprit des nouvelles générations quelque peu lobotomisées

    [edit]je sens que je ne vais pas me faire que des amis sur ce coup là ... [/edit]
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

Discussions similaires

  1. composants C++ Builder et héritage multiple
    Par vedrfolnir dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/10/2005, 10h04
  2. [heritage][conception]héritage multiple en java!
    Par soulhouf dans le forum Langage
    Réponses: 9
    Dernier message: 25/08/2005, 20h03
  3. L'héritage multiple est-il possible en Delphi ?
    Par SchpatziBreizh dans le forum Langage
    Réponses: 8
    Dernier message: 30/06/2005, 11h30
  4. utilisez vous l'héritage multiple ?
    Par vodosiossbaas dans le forum C++
    Réponses: 8
    Dernier message: 13/06/2005, 20h25
  5. [XML Schemas]héritage multiple
    Par nicolas_jf dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 12h55

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