Bonjour,
Je débute en Python. Ayant pratiqué d'autres langages avant, j'ai le réflexe immédiat Tests unitaires et docstrings.
Sur ces dernières, j'ai un problème : elles ne s'enclenchent pas.
C'est à dire qu'après les avoir mises, si je passe au dessus de ma fonction avec le curseur de la souris (sous Eclipse PyDev), cette documentation n'apparaît pas dans l'infobulle.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #*-* Coding: utf-8 *-*
import unittest
def factorielle(n):
""" Factorielle.
:param n: Nombre jusqu'auquel il faut mutliplier.
"""
s,i = 1, 1
while(i <= n):
s = s * i
i = i + 1
return s
class MyTest(unittest.TestCase):
""" Tests unitaires.
"""
def test_factorielle(self):
""" Test de factorielle 4
self -- soi-même
"""
self.assertEqual(factorielle(4), 24, "La factorielle 4! devrait valoir 24") |
(désolé, ce code est loin d'être extra, c'est un de mes tous premiers avec ce langage).
J'ai utilisé deux formats de docstring différents pour présenter mes paramètres :
:param n: Nombre jusqu'auquel il faut mutliplier.
et
self -- soi-même
parce que je ne sais pas quel format est le bon.
Mais de toutes façons, quand je passe au dessus de la méthode factorielle, l'infobulle dit :
def factorielle Found at: condition_while
def factorielle(n):
""" Factorielle.
:param n: Nombre jusqu'auquel il faut mutliplier.
"""
s, i = 1, 1
while i <= n:
s = s * i
i = i + 1
return s
Et au dessus de la classe MyTest :
class MyTest Found at: condition_while
class MyTest(unittest.TestCase):
""" Tests unitaires.
"""
def test_factorielle(self):
""" Test de factorielle 4
self -- soi-même
"""
self.assertEqual(factorielle(4), 24, "La factorielle 4! devrait valoir 24")
Ce qui montre qu'il n'a rien vu. Sinon il aurait sans doute rappelé le nom des fonctions, mis leur descriptif en dessous, et éventuellement : des paramètres avec des liens, etc.
Comme tous les langages de programmation le font à la volée.
Qu'est-ce qui peut clocher ?
En vous remerciant,
Partager