2017-11-14 1 views
0

저는 파이썬에 매우 익숙하며 일부 상수를 정의 할 수있는 비유적인 방법이 무엇인지 알고 싶습니다.파이썬에서 상수를 넣을 곳

some_val = #... 
config_builder builder = ConfigBuilder() 
builder.add_param('PROJECT_RELATED_KEY', some_val) 

곳이 'PROJECT_RELATED_KEY'을 넣어 다음과 같이

class ConfigBuilder: 

    def add_param(self, key, value): 
     #... 
    def build(): 
     #... 

가 지금은 다른 모듈이 사용하려는 : 나는 다음과 같은 클래스가? 다른 모듈에서 가져온 다음? 아니면 전역 변수로 넣으시겠습니까?

+3

그것은이다 취향에 상관없이 말하지 않을 래? 당신은 어느 쪽이든, 또는 둘 다 할 수 있습니다. –

+0

@ cᴏʟᴅs py 파이썬이 나에게 "전통적인"언어로 보이기 때문에 나는 이것을 물었다. 어쩌면 그것을위한 대회도있을 것입니다. –

+2

예 : https://stackoverflow.com/a/18225046/4909087 –

답변

1

어디에서 설정을 저장해야하는지에 대한 절대적인 규정이 없다는 데 동의했습니다. 프로젝트 배치와 관련하여 많은 유연성이 있습니다. 다음은 내 설정을 어디에 둘 것인지 결정할 때 고려할 수있는 몇 가지 가능성입니다.

프로젝트에 버전 제어에서 원하지 않는 몇 가지 중요한 매개 변수가 포함될 수있는 경우 프로젝트를 환경에 배치 한 다음 환경 변수를 사용하여 액세스 할 수 있습니다.

import os 
print os.environ['HOME'] 

민감하지 않은 경우 장고가하는 일을하고 settings.py 파일을 만드는 것이 한 가지 방법 일 수 있습니다. 이

# myproject/settings.py 
SOME_VALUE = 'SomeConfigurableValue' 
FOO = 'bar' 
PROJECT_RELATED_KEY = 'bestkeyever' 

# myproject/builder.py 
from myproject.settings import SOME_VALUE 
print(SOME_VALUE) 

같은 뭔가 당신은 심지어 패키지와 프로젝트를 설정 한 다음 패키지로 프로젝트를 설정에 대한 추가 정보를 원하시면

from . import settings 
print(settings.SOME_VALUE) 

을 할 수있는, 참조 : How to fix "Attempted relative import in non-package" even with __init__.py