héritage - Python - Programmation
Marsh Posté le 27-07-2006 à 11:07:51
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
Marsh Posté le 27-07-2006 à 17:56:05
et en utilisant isinstance?
je dis peut etre des bétises mais je crois que c'est plus propre que ta méthode, à confirmer
Code :
|
Marsh Posté le 27-07-2006 à 18:10:37
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
La classe requête n'a strictement aucun intérêt
Et j'ai pas l'impression que la classe Action fasse grand chose non plus
Et accessoirement... C'EST QUOI CES CONCATENATIONS DE STRINGS POUR FAIRE DES REQUÊTES LÀ
Marsh Posté le 27-07-2006 à 09:31:02
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 '+ ...