Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1831 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  héritage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

héritage

n°1414270
lipaika
Posté le 27-07-2006 à 09:31:02  profilanswer
 

Bonjour,  
 
j'ai une classe Action qui hérite de Ajout et Retrait. Syntaxiquement :  
 
class Ajout:
   def __init__():
         ...
 
class Ajout(Action): ...
class Retrait(Action): ...

 
Une classe Requete prend en argument une instance de Action. Comment puis-je savoir si cette action est un ajout ou un retrait?
 
class Requete:
 
    def __init__(self, action):
        #Si action de type ajout
              if action.de_type_table():
                   self.requete='CREATE TABLE '+...
              if action.de_type_champ():
                   self.requete='ALTER TABLE '+...
              if action.de_type_fk():
                   self.requete='ALTER TABLE '+ ...
        #Si action de type retrait
              if action.de_type_table():
                   self.requete='DROP TABLE '+...
              if action.de_type_champ():
                   self.requete='ALTER TABLE '+...
              if action.de_type_fk():
                   self.requete='ALTER TABLE '+ ...
 

mood
Publicité
Posté le 27-07-2006 à 09:31:02  profilanswer
 

n°1414342
lipaika
Posté le 27-07-2006 à 11:07:51  profilanswer
 

je viens de trouver une façon de procéder :  
   #si action de type ajout >> va se traduire :  
   if action.__class__.__name__
 
merci et pardon pour le dérangement

n°1414841
Profil sup​primé
Posté le 27-07-2006 à 17:56:05  answer
 

et en utilisant isinstance?  
je dis peut etre des bétises mais je crois que c'est plus propre que ta méthode, à confirmer :o

Code :
  1. class Action(object): pass
  2. class Ajout(Action): pass
  3. class Retrait(Action): pass
  4. instance = Ajout()
  5. isinstance(instance, Ajout)
  6. >>> True
  7. isinstance(instance, Retrait)
  8. >>> False

n°1414855
masklinn
í dag viðrar vel til loftárása
Posté le 27-07-2006 à 18:10:37  profilanswer
 

Habituellement, en Python, on ne procède pas par des tests de types mais par des tests de capacité.
 
Mais ici... c'est complètement con comme structure, les classes Ajout et Retrait devraient se démerder toutes seules pour effectuer leurs actions [:pingouino]
La classe requête n'a strictement aucun intérêt [:pingouino]
 
Et j'ai pas l'impression que la classe Action fasse grand chose non plus [:pingouino]
 
Et accessoirement... C'EST QUOI CES CONCATENATIONS DE STRINGS POUR FAIRE DES REQUÊTES LÀ [:mlc] [:mlc] [:mlc]


Message édité par masklinn le 27-07-2006 à 18:11:01

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  héritage

 

Sujets relatifs
DBDesigner 4 et l'héritagedebutant : pb d'héritage
[C# 2] Héritage et spécialisation de méthodes templateHeritage Fonction abstraite, Probleme conteneur Heterogene
Question sur l'héritage en C++GridBagLayout et héritage
Pointeurs sur fonction membre, héritage, toussa[Debutant] Heritage et appel de fonction
Héritage et plugin[Merise] Héritage ou pas ?
Plus de sujets relatifs à : héritage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR