2016-10-29 1 views
0

(파이썬) 문제 여기서는 좋은 해결책을 찾지 못했습니다.몇 가지 분리도를 넘는 변수 전달

# myfunc.py 

bool_val = False 

# Potentially change flag 
if (some_condition_is_met): 
    bool_val = True 

# Many other function calls down the line 
do_other_stuff() 
이제

이,의는 "do_other_stuff"이 같은 다른 기능의 폭포 호출라고하자 내가 소스 파일 myfunc.py에서 부울 플래그 있다고 가정 해 봅시다 : (

do_other_stuff을) 다음 다음 func3() ... 결국 메신저를 호출 FUNC2()를 호출 에서 func1()를 호출 portantfunc()이 호출되었습니다. 이제

는 "importantfunc"는 "bool_val"의 값이

# importantfunc.py 
if bool_val is True: 
    do_something() 
elif bool_val is False: 
    do_something_else() 

문제는 내 SW 아키텍처의 폭포 아래 "bool_val"의 값을 전달하기가 매우 실용적 수 있다는 것입니다 무엇인지 알 필요가 함수 호출.

누구든지이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 아니면 내가 놓친 게 분명해? 미리 감사드립니다. 당신이 전화로 질문에 아키텍처를 실행하는 문제가,이 시도하지만

+1

을, 당신은 클래스에서 이러한 기능을 넣어 시작 부분에 필드로 부울을 저장할 수 , 마지막에 액세스하십시오. –

+0

고마워, Alex,하지만 불행히도이 기능들은 별도의 소스 파일에 있어야합니다. (이 함수는 실제로는 더 넓은 obj 지향 아키텍처의 클래스 메소드이지만 문제를 정의 할 때 단순한 함수로 남겨 둡니다.) – MRM

+0

함수 내에 초기 할당이 있습니까? 그렇지 않으면 전역 변수를 설정해야하며 함수는 자동으로 전역 변수를 사용합니다. – Barmar

답변

0

것은 : 상황에 따라

global bool_val = False