python 이 서로 다른 파일 간 에 전역 변수 방안 을 공유 하 는 연구
1524 단어 python 기초 다짐
최근 에 한 프로젝트 에 이런 요구 가 있 습 니 다. A / B / C 세 개의 파일 입 니 다. 저 는 B / C 에서 사용 할 전역 변 수 를 모두 A 파일 에 두 었 습 니 다. 이렇게 하면 뒤의 항목 이 커지 고 전역 변수 가 많 으 면 호출 이 혼 란 스 럽 지 않 습 니 다.변수의 구체 적 인 값 은 프로그램 이 실 행 될 때 설정 파일 / Redis 에서 읽 을 수 있 습 니 다. 이렇게 하면 쓰 고 나 서 고치 기 가 귀 찮 지 않 습 니 다.A 에 변수 a 가 있다 고 가정 하면 0 으로 초기 화 합 니 다.
a = 0
그리고 B 파일 에서 파일 의 설정 을 읽 고 변수 a 에 값 을 부여 합 니 다.
import A
A.a = 100
제 가 예전 에 이해 한 바 에 따 르 면 A. a 는 A 가 있 는 네 임 스페이스 에서 바 뀌 었 을 것 입 니 다. 이때 A 공간의 변수 값 은 바 뀌 어야 합 니 다.
그리고 나 서 나 는 같은 프로 세 스 에서 (주 1 참조) C 파일 의 함수 func 를 호출 했다.test()
import A
def func_test():
print A.a
결국 나 는 a 의 값 이 0 이라는 것 을 발견 했다.
자 료 를 뒤 져 보 니 저 같은 크로스 파일 간 의 수정 은 함수 호출 방식 으로 만 이 루어 질 수 있 습 니 다. 즉, A 파일 에 변 수 를 수정 하 는 함 수 를 추가 하 는 것 입 니 다.
def change_params(x):
a = x
파일 을 넘 어 수정 할 수 없습니다.
주 1: python 에 서 는 서로 다른 프로 세 스 간 에 전역 변 수 를 공유 할 수 없습니다. 프로 세 스 를 만 들 때 python 은 현재 존재 하 는 전역 변 수 를 모두 copy 한 부 씩 자신의 공간 에 넣 고 각 프로 세 스 간 의 동명 변 수 는 더 이상 관계 가 없습니다.제각기