Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

est-il possible de lever une exception dans une property ?

+2 votes

pour un getter

demandé 7-Fev-2015 par juke (318 points)
edité 7-Fev-2015 par juke

Ce serait fort étonnant, d'autant plus que je ne comprends pas pourquoi tu souhaites faire cela. Aurais-tu un exemple d'application ?

Apparemment c'est possible. En quoi serait-ce étrange ?

En effet oui, pardon.

2 Réponses

+7 votes
 
Meilleure réponse
In [1]: class Test:
   ...:     @property
   ...:     def test(self):
   ...:         raise Exception("Bouh!")
   ...:

In [2]: t = Test()

In [3]: t.test
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-3-f69a6e70fa4a> in <module>()
----> 1 t.test

<ipython-input-1-958b9edbdc91> in test(self)
      2     @property
      3     def test(self):
----> 4         raise Exception("Bouh!")
      5

Exception: Bouh!

In [4]:

La réponse est donc oui.

répondu 7-Fev-2015 par debnet (1,024 points)
edité 7-Fev-2015 par debnet

effectivement la leve aussi quand je fais t.test

Oh, j'utilise une property mais j'appelle encore la méthode derrière. Au temps pour moi.

0 votes

Apparemment oui.

répondu 7-Fev-2015 par Vayel (1,058 points)

je parlais pour un getter, j'ai modifié la question.

...