2011-08-31 6 views
7

코드에서 문서를 생성하기 위해 스핑크스를 사용하고 있습니다. 누구든지 기본 인수에서 생성 된 부동 소수점 숫자의 형식을 제어하는 ​​방법이 있는지 알고 있습니까?스핑크스 부동 소수점 서식

예를 들어 나는 다음과 같은 기능을 한 경우 :

def f(x = 0.97): 
    return x+1 

생성 된 문서는 끝이처럼 보이는 : 분명히

foo(x = 0.96999999999997) 

이있는 부동 소수점 정밀도 문제, 그러나 거기는하는 방법입니다 문서가 너무 못 생겨 보이지 않게 만드시겠습니까?

답변

1

당신은 .. autofunction:: 지시어로 함수 서명을 대체 할 수 있습니다. 그래서 예를 들어, 모듈 barfoo(x=0.97)로 정의 된 함수를 해결하기 :

.. automodule:: bar 

    .. autofunction:: foo(x=0.97) 

을 그리고 결과 문서는 정말 긴 번호 대신 해석 버전이 제공하는 서명을 사용합니다.

.. autoclass::.. automethod:: 등으로 이와 동등하게 적용 할 수 있습니다. 이 사용법은 this part of the sphinx.ext.autodoc 문서의 "옵션 및 고급 사용법"에 문서화되어 있습니다.

0

저는 스핑크스를 사용하지 않았기 때문에 이것이 잘 될지 모르겠지만 제 가정은 repr()이 문서의 형식을 결정하는 데 사용된다는 것입니다. 당신이 도움이 있는지 확인하기 위해 더 좋은 찾고 번호를 반환하는 사용자 정의 __repr__ 방법으로 서브 클래스 float을 시도 할 수 있습니다 :

class my_float(float): 
    def __repr__(self): 
     return str(self) 

>>> float(0.97) 
0.96999999999999997 
>>> my_float(0.97) 
0.97 

>>> def foo(x = my_float(0.97)): 
...  return x+1 
... 
>>> foo() 
1.97 
+0

답장을 보내 주셔서 감사합니다. 나는 실제 프로젝트 소스를 수정하는 것을 포함하지 않은 문서 측 솔루션을 정말로 기대하고 있었다. – ctrlc