La documentazione Sfinge a http://www.sphinx-doc.org/en/stable/domains.html#cross-referencing-python-objects dice,Qual è la differenza di comportamento tra: func: e: meth: ruoli in Python Sphinx?
: py: func: Riferimento una funzione Python; possono essere usati nomi puntati. Il testo del ruolo non deve includere parentesi finali per migliorare la leggibilità; verranno aggiunti automaticamente da Sphinx se il valore di configurazione add_function_parentheses è True (valore predefinito).
: py: meth: Riferimento di un metodo di un oggetto. Il testo del ruolo può includere il nome del tipo e il nome del metodo; se si verifica all'interno della descrizione di un tipo, il nome del tipo può essere omesso. È possibile utilizzare un nome punteggiato.
Ma non ho trovato alcuna differenza nel modo in cui si comportano.
Ecco il mio modulo Python per il quale ho generato documentazione.
"""foo module."""
def hello(name):
"""Print hello addressed to *name*.
Args:
name (str): Name to address.
"""
print('hello', name)
class Foo:
"""Foo class."""
def bye(self, name):
"""Print bye addressed to *name*.
Args:
name (str): Name to address.
"""
print('bye', name)
if __name__ == '__main__':
hello('world')
Foo().bye('python')
Questo è quello che ho nel mio file index.rst
.
Foo Documentation
=================
See :func:`foo.hello` and :func:`foo.Foo.bye`.
Also, see :meth:`foo.hello` and :meth:`foo.Foo.bye`.
foo module
==========
.. automodule:: foo
:members:
Dopo aver eseguito uno make html
, questo è l'output che vedo.
Entrambi i ruoli :func:
e :meth:
hanno generato validi collegamenti con riferimenti incrociati a hello
e Foo.bye
indipendentemente dal fatto che il bersaglio è una funzione o un metodo.
Qual è la differenza tra i ruoli :func:
e :meth:
. Puoi fornire un esempio per il quale si comportano diversamente?