2014-11-07 5 views
0

a.py :속보 원형 의존성

def factory_a(name): 
    return "A" 

def run(): 
    a = factory_a("A") 
    from b import factory_b 
    friend_of_a = factory_b("B") 
    print(a) 
    print(friend_of_a) 

b.py :

def factory_b(name): 
    return "B" 

def run(): 
    b = factory_b("B") 
    from a import factory_a 
    friend_of_b = factory_a("A") 
    print(b) 
    print(friend_of_b) 

수입은 다음이 일을하지 않았을 각 모듈의 시작 대신 run()에 배치 되었다면 순 수입으로 인해. 따라서 아래에서 수행 한대로이 문제를 올바르게 해결했는지 궁금합니다. 대신이 일을 어떻게하셨습니까?

+0

당신은 무엇을 의미합니까? 어떻게해야합니까? 왜 당신 의견에 맞지 않습니까? –

+0

함수 내부로 가져 오는 것은 좋지 않은 스타일이지만 코드는 유효하고 기능적으로 보입니다. – Kevin

+0

두 번째 파일에서'print b'를 사용했다고 생각합니다. 그게 괜찮은 것 같아. – Kokoman

답변

1

코드가 작동합니다 ... 이제는 좋지 않습니다. 이런 종류의 상호 의존은 코드를 이해하고 확장하는 것을 어렵게 만듭니다. 이런 식으로 뭔가 훨씬 더 나은 것 같다

a.py

def factory_a(name): 
    return "A" 

b.py

def factory_b(name): 
    return "B" 

controller.py

from a import factory_a  
from b import factory_b  

def run_a(): 
    a = factory_a("A")   
    friend_of_a = factory_b("B") 
    print(a) 
    print(friend_of_a) 

def run_b(): 
    b = factory_b("B") 
    friend_of_b = factory_a("A") 
    print(a) 
    print(friend_of_b)