복붙노트

[PYTHON] 하나의 파일에 몇 개의 클래스를 넣어야합니까? [닫은]

PYTHON

하나의 파일에 몇 개의 클래스를 넣어야합니까? [닫은]

필자는 파일 당 하나의 공용 클래스를 가질 수있는 Java 모델에 익숙합니다. 파이썬에는 이러한 제한이 없으며 수업을 구성하는 가장 좋은 방법이 무엇인지 궁금합니다.

해결법

  1. ==============================

    1.파이썬 파일은 "모듈"이라고 불리며 소프트웨어를 구성하여 "이해"하는 한 가지 방법입니다. 다른 하나는 "패키지"라고하는 디렉토리입니다.

    파이썬 파일은 "모듈"이라고 불리며 소프트웨어를 구성하여 "이해"하는 한 가지 방법입니다. 다른 하나는 "패키지"라고하는 디렉토리입니다.

    모듈은 1 ~ 2 개의 밀접하게 관련된 클래스를 가질 수있는 별개의 것입니다. 트릭은 모듈을 가져올 대상으로 사용하고 소프트웨어를 읽고 유지 관리하고 확장하는 사람들에게 완벽하게 의미가 있어야합니다.

    규칙은 다음과 같습니다. 모듈은 재사용 단위입니다.

    단일 클래스를 쉽게 재사용 할 수는 없습니다. 어려움없이 모듈을 재사용 할 수 있어야합니다. 라이브러리에있는 모든 것 (그리고 다운로드하고 추가하는 모든 것)은 모듈이거나 모듈 패키지입니다.

    예를 들어, 스프레드 시트를 읽은 다음 계산을 수행하고 결과를 데이터베이스에로드하는 작업을 수행하고 있습니다. 주 프로그램을 어떻게 보이게할까요?

    from ssReader import Reader
    from theCalcs import ACalc, AnotherCalc
    from theDB import Loader
    
    def main( sourceFileName ):
        rdr= Reader( sourceFileName )
        c1= ACalc( options )
        c2= AnotherCalc( options )
        ldr= Loader( parameters )
        for myObj in rdr.readAll():
            c1.thisOp( myObj )
            c2.thatOp( myObj )
            ldr.laod( myObj )
    

    가져 오기를 개념 또는 청크에서 코드를 구성하는 방법으로 생각하십시오. 각 가져 오기에 정확히 몇 개의 클래스가 있는지는 중요하지 않습니다. 중요한 것은 수입 명세서로 묘사하는 전체 조직입니다.

  2. ==============================

    2.인위적인 제한이 없기 때문에 실제로 이해할 수있는 부분에 달려 있습니다. 논리적으로 그룹화 된 상당히 짧고 간단한 클래스가 여러 개있는 경우에는 여러 클래스로 던져 넣습니다. 크고 복잡한 클래스 또는 그룹으로 이해할 수없는 클래스가있는 경우 클래스 당 하나의 파일로 이동하십시오. 또는 중간에 무언가를 선택하십시오. 사물이 변화함에 따라 리 팩터링.

    인위적인 제한이 없기 때문에 실제로 이해할 수있는 부분에 달려 있습니다. 논리적으로 그룹화 된 상당히 짧고 간단한 클래스가 여러 개있는 경우에는 여러 클래스로 던져 넣습니다. 크고 복잡한 클래스 또는 그룹으로 이해할 수없는 클래스가있는 경우 클래스 당 하나의 파일로 이동하십시오. 또는 중간에 무언가를 선택하십시오. 사물이 변화함에 따라 리 팩터링.

  3. ==============================

    3.프로젝트가 얼마나 큰지, 클래스가 얼마나 오래, 다른 파일에서 사용될 것인지 등에 달려 있습니다.

    프로젝트가 얼마나 큰지, 클래스가 얼마나 오래, 다른 파일에서 사용될 것인지 등에 달려 있습니다.

    예를 들어 데이터 추상화를 위해 일련의 클래스를 자주 사용합니다. 따라서 클래스 길이가 1 라인 (클래스 SomeData : 패스) 일 수있는 클래스가 4 개 또는 5 개일 수 있습니다.

    이것들을 각각 별도의 파일로 분리하는 것은 어리석은 일이지만, 다른 파일에서 사용할 수 있기 때문에이 모든 파일을 별도의 data_model.py 파일에 저장하는 것이 합리적입니다. mypackage.data_model에서 할 수 있습니다. Import SomeData, SomeSubData

    많은 코드가 포함 된 클래스가 있거나 일부 함수 만 사용하는 경우이 클래스와 도우미 함수를 별도의 파일로 분할하는 것이 좋습니다.

    mypackage.database.schema에서 가져 오도록 구조화해야합니다. mypackage.email.errors가 아니라 MyModel을 가져 오십시오. import MyDatabaseModel - 사물을 의미있는 것으로 가져 오는 위치에 파일이 수십 만 줄이 아니라면 올바르게 조직했습니다.

    Python Modules 문서에는 패키지 구성에 대한 유용한 정보가 있습니다.

  4. ==============================

    4.나는 다음과 같은 이유로 자바 모델을 좋아한다. 각 클래스를 개별 파일에 배치하면 소스 코드를 탐색 할 때 클래스를보다 쉽게 ​​볼 수 있으므로 재사용이 촉진됩니다. 한 무리의 클래스를 하나의 파일로 그룹화 한 경우 다른 개발자가 프로젝트의 디렉토리 구조를 탐색하여 클래스를 재사용 할 수 있다는 것을 분명히 알지 못할 수도 있습니다. 따라서 클래스를 재사용 할 수 있다고 생각되면 직접 파일에 넣을 것입니다.

    나는 다음과 같은 이유로 자바 모델을 좋아한다. 각 클래스를 개별 파일에 배치하면 소스 코드를 탐색 할 때 클래스를보다 쉽게 ​​볼 수 있으므로 재사용이 촉진됩니다. 한 무리의 클래스를 하나의 파일로 그룹화 한 경우 다른 개발자가 프로젝트의 디렉토리 구조를 탐색하여 클래스를 재사용 할 수 있다는 것을 분명히 알지 못할 수도 있습니다. 따라서 클래스를 재사용 할 수 있다고 생각되면 직접 파일에 넣을 것입니다.

  5. ==============================

    5.나는 파일의 bigness로 성가 시게 될 때 그리고 관련성의 바람직한 구조가 자연스럽게 드러나기 시작할 때 나 자신을 분할하는 것을 발견한다. 종종이 두 단계가 일치하는 것처럼 보입니다.

    나는 파일의 bigness로 성가 시게 될 때 그리고 관련성의 바람직한 구조가 자연스럽게 드러나기 시작할 때 나 자신을 분할하는 것을 발견한다. 종종이 두 단계가 일치하는 것처럼 보입니다.

    완전히 다른 구조의 순서가 필요하다는 것을 깨닫기 시작하면 너무 일찍 분할하면 매우 짜증납니다.

    반면에 .java 또는 .py 파일이 약 700 줄 이상으로 늘어 나면 나는 "특정 비트"가 어디에 있는지 끊임없이 기억하려고 애를 씁니다.

    Python / Jython에서 import 문에 대한 순환 종속성 또한 중요한 역할을하는 것으로 보인다. 너무 많은 협력 기본 빌딩 블록을 별도의 파일로 분리하려고하면이 "제한"/ "언어 불완전"이 그룹화 할 것 오히려 합리적인 방법으로

    패키지로 분리하는 것에 관해서는, 나는 정말로 모르지만, 아마도 모듈성의 모든 수준에서 행복 구조의 성가심과 출현의 동일한 규칙을 말할 것입니다.

  6. ==============================

    6.너무 크고 복잡하지 않게 논리적으로 그 파일에 그룹화 할 수있는 많은 클래스를 넣을 것이라고 말하고 싶습니다.

    너무 크고 복잡하지 않게 논리적으로 그 파일에 그룹화 할 수있는 많은 클래스를 넣을 것이라고 말하고 싶습니다.

  7. from https://stackoverflow.com/questions/106896/how-many-classes-should-i-put-in-one-file by cc-by-sa and MIT license