2015-01-13 2 views
2
# models/__init__.py 

from shared.cache import Cache 

class modelA(): 
    pass 
class modelB(): 
    pass 
class modelC(): 
    pass 

# shared/cache.py 

class Cache: 
    def methodA(): 
     modelA.SomeStaticMethod() 

기본적으로 내가 필요한 것은 Cache 클래스 내부에서 modelA에 액세스하는 것입니다. cache.py에서 모델을 가져 오려고하면 순환 참조 오류로 인해 오류가 발생합니다.상위 파일에서 리소스에 액세스

나는 이상하게 보입니다. 그러나 매우 구체적인 문제입니다. 어쨌든 그렇게 할 수 있습니까?

+0

정확히 달성하고자하는 것에 대해 자세히 설명해 줄 수 있습니까? – 101

+0

수입이 파이썬으로 얼마나 망가 졌는지 슬프다. 나는 종종이 문제를 스스로 해결하고 최소한 3 가지 다른 어리석은 해결 방법을 발견했다. –

답변

1

일반적으로 순환 참조 오류가 없도록 파일을 재구성합니다.

질문에 답변하기 만하면 대개 해결 방법으로 볼 수 있으며 은 필요에 따라 models/__init__.py의 기능 안에서만 가져올 수 있습니다. 이 경우 특히 Cache이 모듈 수준의 데코레이터로 사용되는 경우 가능하지 않을 수 있습니다.

도 참조하십시오. this 질문.

+1

요청시 캐시 가져 오기 작업이 필요했습니다. 고맙습니다! – stefanobaldo