Python docstring의 클래스 메서드에 대한 링크
같은 클래스의 다른 메서드의 docstring 내에서 클래스의 메서드에 링크를 추가하고 싶습니다.나는 그 링크가 스핑크스와 우선적으로 Spyder와 다른 Python IDE에서도 작동하기를 원합니다.
여러 가지 방법을 시도해봤는데 작동하는 방법이 하나밖에 없는데 번거롭네요.
다음 구조를 가정합니다.mymodule.py
def class MyClass():
def foo(self):
print 'foo'
def bar(self):
"""This method does the same as <link to foo>"""
print 'foo'
나는 다음 옵션을 시도했습니다.<link to foo>:
:func:`foo`:func:`self.foo`:func:`MyClass.foo`:func:`mymodule.MyClass.foo`
링크를 효과적으로 생성하는 유일한 방법은:func:`mymodule.MyClass.foo` , 그러나 링크는 다음과 같이 표시됩니다.mymodule.MyClass.foo()다음과 같이 표시된 링크를 원합니다.foo()아니면foo. 위의 옵션 중 어떤 것도 Spyder에서 링크를 생성하지 않습니다.
스핑크스에 적용되는 해결책은 참조를 다음과 같이 접두사를 붙입니다.~.
상호 참조 구문에 대한 스핑크스 문서에 따르면,
내용의 접두사를 다음과 같이 지정하는 경우
~, 링크 텍스트는 대상의 마지막 구성요소일 뿐입니다.예를들면,:py:meth:`~Queue.Queue.get`을 참조할 것입니다Queue.Queue.get표시만 합니다.get링크 텍스트로서.
그렇다면 답은 다음과 같습니다.
class MyClass():
def foo(self):
print 'foo'
def bar(self):
"""This method does the same as :func:`~mymodule.MyClass.foo`"""
print 'foo'
이렇게 되면 HTML은 다음과 같이 나타납니다.This method does the same as foo(),그리고.foo()링크입니다.
그러나 이는 Spider에 링크로 표시되지 않을 수 있습니다.
링크의 텍스트를 수동으로 지정하려면 다음을 사용할 수 있습니다.
:func:`my text <mymodule.MyClass.foo>`
자세한 내용은 Python 개체 상호 참조를 확인하십시오.
제가 보기에 당신은 그저 추가하기만 하면 될 것 같습니다.__name__아니면__doc__당신이 원하는 것을 얻기 위해 당신의 표현대로.
저는 여전히 그 목적을 정확히 이해했는지 확신할 수 없습니다.
class MyClass():
def foo(self):
"""I am the docstring of foo"""
print 'foo'
def bar(self):
"""This method does the same as <link to foo>"""
print 'foo'
print
print MyClass.foo
print MyClass.foo.__name__
print MyClass.foo.__doc__
print
print MyClass.__dict__['foo']
print MyClass.__dict__['foo'].__name__
print MyClass.__dict__['foo'].__doc__
결과
<unbound method MyClass.foo>
foo
I am the docstring of foo
<function foo at 0x011C27B0>
foo
I am the docstring of foo
언급URL : https://stackoverflow.com/questions/21289806/link-to-class-method-in-python-docstring
'programing' 카테고리의 다른 글
| JSON을 사용하여 Spring MVC 컨트롤러에 중첩 개체 게시 (0) | 2023.09.27 |
|---|---|
| 수동 조립 대 GCC (0) | 2023.09.27 |
| build.gradle 파일에 주석을 작성하는 구문은 무엇입니까? (0) | 2023.09.27 |
| C 매크로에서 출력 사용 및 반환 (0) | 2023.09.27 |
| 사용자 지정 게시 유형 관리 페이지에 사용자 지정 분류법 열 표시 (0) | 2023.09.17 |