2016-09-26 2 views
1

스크립트의 코드 기능을 새 모듈로 분리하려고합니다. 나는 그 모듈에서 매개 변수로 전달할 일부 config를 정의하려고합니다. 그런 다음 모듈에서이 구성을 전역으로 정의합니다. 좋은 습관입니까? 더 나은 해결책이 있습니까?Python - 모듈 메소드 변수를 전역으로 잘 만드시겠습니까?

주요 스크립트

import myModule 

config = { 
    "foo1" : "bar1", 
    "foo2" : "bar2", 
    "foo3" : "bar3" 
} 

myModule.execute(config) 

모듈 : 내가 전역 변수 같은 종류를 필요로 할 때 내가 평소 무엇

def execute(config): 
    global CONFIG 
    CONFIG = config 
    value1, value2 = handleRequest() 
    print(value1) 
    print(value2) 

def handleRequest() 
    value1 = doSomething(CONFIG["foo1"]) 
    value2 = doSomethingElse(CONFIG["foo2"]) 
    return value1, value2 
+0

개선이 필요한 작업 코드는 코드 검토에 속하기 때문에이 질문을 주제와 관련이없는 것으로 닫습니다. – Carcigenicate

+4

@Carcigenicate 이것은 "example code"가되기 위해 CR에서 insta-closed 될 것입니다. – Kaz

답변

2

클래스를 만들고이 그들을 정의하는 것입니다. 예를 들어 값이 저장된 Configuration 클래스를 예로들 수 있습니다.

이것은 다음과 같은 장점 (안 엔딩 목록)이 있습니다

  • 클래스 상수/변수 (이 경우 구성) 더 적용 무언가에 '소속'.
  • 계산할 코드를 숨길 수 있습니다 (예 : 기능이 같은 클래스에 통합 될 수 있음)
  • 이름 충돌이 방지됩니다.
  • 나중에 구성의 인스턴스를 여러 개 만들 필요가없는 경우 문제가 발생하지 않습니다.
관련 문제