복붙노트

[PYTHON] 파이썬 클래스에서 메소드를 정렬하는 좋은 방법은 무엇입니까?

PYTHON

파이썬 클래스에서 메소드를 정렬하는 좋은 방법은 무엇입니까?

파이썬 클래스에서 메소드를 주문하려고하지만 올바른 순서가 무엇인지 알지 못합니다.

PyDev를 사용하여 Eclipse에서 메소드를 추출 할 때 Eclipse는 추출 된 메소드를 수정 된 메소드 위에 놓는다. 그러나 이것은 더 낮은 수준의 세부 사항을 높은 수준의 세부 사항 앞에 놓습니다. Bob 삼촌에 따르면 나는 그 코드를 신문의 헤드 라인과 같이 읽을 수 있도록 반대를해야합니다. 내가 자바 프로그래밍을 할 때 나는 그의 조언을 따른다.

파이썬의 모범 사례는 무엇입니까?

해결법

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

    1.다른 사람들이 지적했듯이, 당신의 방법을 주문할 올바른 방법은 없습니다. 어쩌면 PEP 제안이 유용 할 수도 있습니다. 가능한 한 객관적으로 질문에 접근하겠습니다.

    다른 사람들이 지적했듯이, 당신의 방법을 주문할 올바른 방법은 없습니다. 어쩌면 PEP 제안이 유용 할 수도 있습니다. 가능한 한 객관적으로 질문에 접근하겠습니다.

    희망이 도움이됩니다. 이러한 규칙의 대부분은 파이썬에 한정되지 않습니다. 메소드 순서를 시행하는 언어에 대해서는 잘 모르겠다. 그렇다면 매우 흥미롭고 논평 해주세요.

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

    2.올바른 순서는 없습니다. 시스템을 골라서 붙잡아 라. 내가 사용하는 것은 :

    올바른 순서는 없습니다. 시스템을 골라서 붙잡아 라. 내가 사용하는 것은 :

    class SomeClass(object):
        def __magic_methods__(self):
            "magic methods first, usually in alphabetical order"
        def _private_method(self):
            "worker methods next, also in alpha order"
        def a_method(self):
            "then normal methods, also in alpha order"
    
  3. ==============================

    3.나는 Django의 소스에서 보았던 @Ethan과 비슷한 것을한다. 가장 큰 차이점은 "##########"블록 주석으로 영역을 구분한다. 예를 들어,

    나는 Django의 소스에서 보았던 @Ethan과 비슷한 것을한다. 가장 큰 차이점은 "##########"블록 주석으로 영역을 구분한다. 예를 들어,

    class SomeClass(object):
        #################
        # Magic Methods #
        #################
        def __magic_methods__(self):
            "magic methods first"
    
        ##################
        # Public Methods #
        ##################
        def a_method(self):
            "then normal methods, in order of importance"
    
        ###################
        # Private Methods #
        ###################
        def _private_method(self):
            "then worker methods, grouped by importance or related function"
    

    분명히 이것은 소규모 클래스에는 유용하지 않습니다.

  4. from https://stackoverflow.com/questions/10289461/what-is-a-good-way-to-order-methods-in-a-python-class by cc-by-sa and MIT license