Bonjour,

Sur une classe je fais un contrôle d'arguments, et je voudrais que l'instance ne soit pas créée si les tests sur les arguments ne sont pas réussis.

Je voudrais en plus ne pas passer par des décorateurs (python 2.3).

J'imaginais un truc du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
class A():
    def __init__(self, arg1, arg2):
        try:
            assert test1()
            assert test2()
            etc...
        except AssertionError:
            print "les arguments ne sont pas corrects"
            del self
Mais tout ce que fait le "del self" est d'enlever self de l'espace de noms à l'intérieur de la classe apparemment.

Moi ce que je voudrais c'est si un argument ne passe pas les test, obtenir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
>>> a = A(arg1, arg2)
les arguments ne sont pas corrects
>>> a
NameError exception bla bla bla...
Est-ce possible ? Vous avec des idées ??

Merci d'avance.