전역 함수와 마찬가지로 정적 메서드는 포함하는 클래스의 인스턴스에 액세스 할 수 없습니다. 그러나 그것은 개념적으로 포함하는 클래스에 속합니다. 다른 이점은 이름 충돌을 피할 수 있다는 것입니다.
함수가 특정 클래스에 대해 제공되도록 디자인 된 경우 해당 클래스의 정적 메서드로 사용하는 것이 좋습니다. 이를 cohesion이라고합니다. 게다가,이 함수가 외부에서 사용되지 않는다면, "private"으로 표시하기 위해 앞에 밑줄을 추가 할 수 있습니다. 파이썬이 실제로는 private 메소드를 지원하지는 않지만 information hiding이라고합니다. 일반적으로 인터페이스를 가능한 한 적게 노출 시키면 코드를보다 깨끗하게 만들 수 있고 변경하기가 줄어 듭니다.
이 함수가 여러 모듈에 걸쳐있는 많은 클래스의 공유 유틸리티로 사용된다고하더라도 전역 함수로 만드는 것은 여전히 첫 번째 선택이 아닙니다. 유틸리티 클래스의 정적 메서드로 만들거나 일부 특수 모듈에서 전역 함수로 만들 것을 고려하십시오. 한 가지 이유는 비슷한 목적의 함수를 공통 클래스 또는 모듈로 모으는 것이 다른 레벨의 추상화/모듈화에 적합하다는 것입니다 (소규모 프로젝트의 경우 일부 사람들은 이것이 과장되어 있다고 주장 할 수도 있습니다). 다른 이유는 네임 스페이스 오염을 줄일 수 있기 때문입니다.
내 opion에서 가장 좋은 대답은 첫 번째 링크에서 승인 된 답 가기 코멘트입니다 : "A StaticMethod를 쓸모없는 - 클래스에 함수를 넣는 방법입니다 (논리적으로 거기에 속하기 때문에). 클래스에 액세스 할 필요가 없음을 나타냅니다. " 특정 날짜와 관련된 것들을 정적 메서드를 갖는'datetime' 클래스를 이미징 할 수는 있지만, 그 함수는 모듈 레벨에서도 똑같이 잘 수행 될 수 있습니다. – Evert