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 :

Class qui reprend pas la métaclass de class mère


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2018
    Messages : 40
    Par défaut Class qui reprend pas la métaclass de class mère
    Bonjour,

    Ma classe A est modelé sur la métaclasse MétaA, ma classe B hérite de ma classe A mais je ne veux pas qu'elle ait pour métaclasse MétaA mais MétaB, c'est possible ? Si oui comment faire

    Pour résumer est ce qu'une classe fille est obligé d'avoir la même métaclasse que sa classe mère.

  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 Akainu_2018 Voir le message
    Pour résumer est ce qu'une classe fille est obligé d'avoir la même métaclasse que sa classe mère.
    MetaB construit B, donc on fait ce qu'on veut pour autant que çà ait du sens.

    Citation Envoyé par Akainu_2018 Voir le message
    Si oui comment faire
    Si vous avez des difficultés à coder çà, un peu de recherche sur Internet (et de compréhension de la mécanique des metaclass) devrait suffire sauf si vous débutez. Auquel cas, probable que vous cherchiez à résoudre via les metaclass un problème mal posé. Et, il serait plus sain de commencer à décrire le problème à résoudre et envisager les différentes solutions plutôt que de se lancer à coder une idée qui ne fonctionnera pas.

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

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

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



    MetaB construit B, donc on fait ce qu'on veut pour autant que çà ait du sens.



    Si vous avez des difficultés à coder çà, un peu de recherche sur Internet (et de compréhension de la mécanique des metaclass) devrait suffire sauf si vous débutez. Auquel cas, probable que vous cherchiez à résoudre via les metaclass un problème mal posé. Et, il serait plus sain de commencer à décrire le problème à résoudre et envisager les différentes solutions plutôt que de se lancer à coder une idée qui ne fonctionnera pas.

    - W
    Je viens de me rendre compte que je n'ai pas été très précis, je vais tenter d'expliquer avec des exemples.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class MetaA(type):
        pass
     
    class MetaB(type):
        pass
     
    class A(metaclass = MetaA): 
        pass
     
    class B(A):
        pass
    Dans cet exemple tu peux bien voir que ce n'est pas MetaB qui construit B mais MetaA car B hérite de A.

    Hors dans le tutoriel que je suis il est dit :

    " Héritant de A, B reprend la même métaclasse (sauf mention contraire explicite)."

    Ici c'est le "sauf mention contraire explicite" qui m'intéresse, on peut donc faire en sorte que B hérite de A sans pour autant prendre en métaclasse MétaA mais MétaB donc elle aura une métaclasse différente de sa classe mère.

    Le problème c'est que j'ai tout essayé, j'ai fait des recherches sur google, que ce soit en français ou en anglais, j'ai posé la question sur des forums, j'ai fait des testes moi même pour que B n'ait pas la même metaclasse que sa classe mère, mais rien n'a fonctionné.

    Mes questions est de savoir si c'est possible ou pas, si oui comment faire pour y parvenir, car le code :

    class B(A, metaclass = MetaB) ne fonctionne tout simplement pas.

    Pour info oui je débute, je viens de m'inscrire sur ce forum aujourd'hui, j'en profite pour poser une question un peu hors sujet, mais c'est possible d'enfermer son code dans un bloc de code dans les messages ?

Discussions similaires

  1. Réponses: 34
    Dernier message: 24/09/2014, 20h26
  2. Réponses: 4
    Dernier message: 27/08/2011, 01h02
  3. Réponses: 8
    Dernier message: 12/01/2011, 19h00
  4. Allocation dynamique de classe qui marche pas
    Par Guillaume602 dans le forum C++
    Réponses: 8
    Dernier message: 11/07/2006, 10h55
  5. class qui ne s'applique pas sous opéra pour les <tr>?
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/03/2006, 16h55

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