문제
내 응용 프로그램을 유지하는 글로벌 응용 프로그램 상태 및 글로벌 응용 프로그램 넓은 방법은 현재 연결된 사용자의 총 수에 대한 답을 만들고,응용 프로그램 구성 파일 등등.두 가지 옵션이 있습니다:
별도의 appstate.py 파일의 전역 변수로 기능하다.그것은 처음이지만 그것은 보인다는 목표를 설정했습니다. 가 에서 명확성을 나의 코드입니다.
클래스를 만들른 조치가 있나 클래스에서 기능 appstate.py 파일,다른 모든 모듈을 정의에 의해 특정 작업입니다.이 보인다.하지만 지금은 좀 더 쓰인 다른 조치가 있나.다른 조치가 있나.get_user_list().또한,방법은 아래와 관련됩니다.내가 만들 수 있는 별도의 클래스는 것은 너무 많은 클래스입니다.
편집:내가 사용하는 경우스 클래스 내가 사용하는 것 classmethods.나는 생각하지 않 필요가 있는 클래스를 인스턴스화하는 객체입니다.
해결책
두 번째 방법은 더 나은 것 같다.내가 사용하는 첫 번째 중 하나의 구성 파일에 대해서만 또는 무언가이다.
어쨌든 문제를 방지하기 위해갈어 서비스를 제공하고 있습니다:
from myapp.appstate import AppState
되는 것을 방지할 수 있습니다를 작성해야합니다 더 이상.
다른 팁
소리와 같은 고전적인 난제:-).
파이썬에서,아무것도 없어 더러운 또는 부끄러운 일에 대한 선택을 사용하여 모듈을 경우에는 가장 좋은 방법입니다.후에는 모든 모듈 기능,그리고 다음과 같은 사실,첫 번째 클래스에서 시민들,그리고 언어를 제공합성 및 재산은 많은 다른 프로그래밍 언어의 제공에 의해서만 사용됩니다.
는 방법을 설명한 옵션,그것은 좀처럼 들리 당신은 너무 대한 미친 클래스-기반 접근 방법 이 경우.
내가 알지 못하는 경우에 사용한 장고 프레임워크,그러나 그렇지 않으면,를 보는 방법에 대한 설명서로 설정 합니다.이러한 응용 프로그램 전에 정의된 모듈과 그들며 세계적으로 이용할 수 있습니다.방법은 분석 옵션 노출하는 전 세계적으로 매우 우아한,그리고 당신이 찾을 수 있습니다 이러한 접근 방식은 영감에 대한 귀하의 필요합니다.
두 번째 방법은 크게 다르에서 첫 번째 방법이 있는 경우 응용 프로그램 상태에 저장됩 인스턴스 의 다른 조치가 있나 어떤 경우에는,당신의 불만 적용되지 않습니다.는 경우에 당신은 단지 저장 재료에서 클래스를 사용하여 정적/래 방법은,당신의 클래스가 다른 이 모듈이고,그것은 것 pythonic 을 대신으로 사용하실 수 있습니다.으로 모듈이 있습니다.
왜 이동 클래스의 인스턴스?는 방법할 수도 있습니다 나중에 있는 2 개의 다른"세션이 실행",에 따라 인스턴스입니다.그것은 그것을 만들 수도 있습니다 더 유연합니다.어쩌면 추가 어떤 방법 get_appstate()
모듈 그래서 그것은 instanciates 클래스 한다.나중에 있습니다 원하는 여러 인스턴스를 변경할 수 있습니다이 방법은 결국 가수와 사전 등등.한 인스턴스가 있습니다.
사용할 수도 있습산 장식 btw 하는 것을 더욱 쉽게 읽을 수 있는 유연성을 가지고 저장하는 그것을 어떻게 그리고 당신이 원하는 곳에 그것을 저장합니다.
나는 것에 동의하는 것이 더 pythonic 을 사용하여 모듈 접근 방식 대신 classmethods.
BTW,나 같은 큰 팬의 것을 사용할 수 있 전 세계적으로 몇몇에 의해"magic".는 일부를 명시적으로 호출하여 얻을 수 있는 정보입니다.음을 알 수 있는 것에서 올 및 디버깅하는 방법을 때 그것을 것이 실패합니다.
다음 예제를 살펴보십시오:
configuration
|
+-> graphics
| |
| +-> 3D
| |
| +-> 2D
|
+-> sound
진짜 문제는:의 차이점은 무엇입 클래스 모듈에는 이 계층 구조,그것으로 나타낼 수 있습 양을 의미합니까?
클래스를 나타내는 유형입니다.을 구현하면 귀하의 솔루션과 클래스는 대신 모듈,를 확인 할 수 있는 그래픽 객체에 대한 그것의 적절한 유형,그러나 일반적 그래픽 기능입니다.
클래스를 생성할 수 있습니다 매개변수화 값입니다.이것이 가능한 초기화를 다르게 리 클래스를 생성자,그러나 그것은 하드를 초기화하여 모듈을 다른 매개 변수입니다.
이점은,당신이 정말로 뭔가 다른 것에서 모델의 관점에서.
내가 갈 것이라고 클래스 경로로 그것은 더욱 체계적으로 정리할 수 있도록 코드입니다.을 기억하는 가독성을 위한 당신이 작업을 수행 할 수 있습니다:
from appstate import AppSate
나는 확실히 가을 위한 두 번째 옵션:이미 사용한 첫 번째 중 하나,나는 이제 형식,내 응용 프로그램 진화하고 지원해야 더 많은 모듈식 구조물,그래서 나는 이제를 처리하는 데 필요 여러 simulataneous 구성'.
두번째 방식은,IMO,더 많은 유연성과 미래의 증거입니다.을 피하는 더 이상 줄의 코드를 사용할 수 있습니다 from appstate import AppState
대 import appstate
.