2017-07-24 4 views
4

Je souhaite ajouter un lien d'une méthode d'un module (say module_2.py) dans une autre méthode d'un autre module (say module_1.py). Je veux que le lien fonctionne dans Sphinx.Lien vers la méthode de classe d'un autre module dans python docstring

Suppose:

module_1.py

class ABC: 
    def foo(self): 
     """ 
    See docstring of module_2.py bar():<link to bar() in module_2.py> 
     """ 
     print("foo") 

module_2.py

class XYZ: 
    def bar(self): 
    """ 
    This function prints hello. 
    """ 
    print("hello") 
+0

Vous avez des réponses ici https://stackoverflow.com/ questions/21289806/link-to-class-method-in-python-docstring, et plus ici: https://stackoverflow.com/questions/11168178/how-do-i-reference-a-documented-python-function- paramètre-using-sphinx-markup – Laurentourte

Répondre

2

Vous pouvez écrire:

class ABC: 
    def foo(self): 
    """ 
    See docstring of :py:meth:`bar() <XYZ.bar>` in :py:mod:`module_2`. 
    """ 
    print("foo") 

Le balisage indiqué utilise un rôle pour lier à un élément documenté. Si Python est le domaine par défaut pour votre documentation, alors :py peut être omis. Le rôle meth liens vers un nom de méthode. Un nom en pointillé peut être utilisé. De même, mod liens vers un nom de module. Le contenu d'un rôle est écrit entre ``. Le contenu (nom du lien logique peut avoir un contenu visuel differnet Par conséquent, le nom du lien logique est écrit dans <> Exemple:.. :role:`text <logical name>`

Informations complémentaires:. http://www.sphinx-doc.org/en/stable/domains.html#role-py:meth