2017-10-07 1 views
2

간단한 예제로 다음 하위 모듈 2 개 (같은 디렉토리에 a.pyb.py)가 있습니다. 동일한 하위 모듈 함수 :func:`hook`에 대한 링크는 작동하지만 다른 모듈에 대한 상호 참조 링크가 아닙니다 (예 : :func:`foo`). 또한 :func:`.a.foo`의 구문을 시도했지만 여전히 작동하지 않습니다. a.foo()에 대한 참조를 어떻게 교차시킬 수 있습니까?다른 하위 모듈의 함수/클래스에 교차 교차 링크

docs에서 설명한 바와 같이
# script a.py 
def foo(): 
    '''foo func''' 

# script b.py 
def hook(): 
    '''hook func''' 

def spam(): 
    '''spam func. 
    :func:`foo` 
    :func:`hook` 
''' 
+0

나는 가까이 있다고 생각합니다. 파이썬 점선으로 노려 보아라. 아마도': func : \'a.foo \''또는': func : \'parent.a.foo \''? –

답변

1

:

일반적으로는 이러한 역할의 이름은 현재 모듈과 클래스와 다음, 다음 앞에 추가 현재 모듈의 이름으로, 더 자격없이 먼저 검색된다 이름 앞에 (있는 경우). 앞에 점을 붙이면이 순서가 반대로 바뀝니다. 이 경우

:func:`.a.foo` 모듈 b 내부 a라는 객체를 의미한다. 그것은 b.a.foo 기능을 찾을 것입니다.

b..a.foo 또는 정확히 a.foo (로컬에서는 지금은 확인할 수 없지만 미안하지만 그 구문을 사용하고 있었다는 것을 기억해야합니다)을 시도해야합니다.

하지만 그 a.py & b.py은 모듈이어야합니다. 즉, 해당 이름으로 가져올 수 있습니다. 스크립트 일 뿐이고 패키지에 있지 않은 경우 (프로젝트의 루트까지 파일이 __init__.py) 이러한 역할과 상호 참조 할 수있는 방법은 없습니다.

:any: 역할 (:any:`foo`)을 사용해보십시오. 설명 된 개체의 일반 색인에서 개체를 찾을 수 있기를 바랍니다.