'명시 적 묵시적보다 묵시적'인 경우 파이썬에 명시 적 액세스 수정자가없는 이유는 무엇입니까?
나는 프로그래머가 힌트를 통해 무엇을해야하는지 알아야한다는 것을 알고있다. '브 루트 포스'를 사용할 필요는 없다. 그러나 IMO '캡슐화'또는 '정보 숨기기'는 사람들을 막기위한 것이 아니라 조직과 구조의 문제입니다. 개발 계층에는 물리적 시스템과 마찬가지로 자체 정의되고 명확하게 구분 된 범위와 경계가 있어야합니다.
누군가가 완벽하게 가까운 것처럼 보이는 파이썬에서 명시 적으로 액세스 제한이 암시되지 않는 이유에 대한 확실한 설명으로 나를 도와 줄 수 있습니까?
편집 : 지금까지 3 개의 제안 된 답변을 보았으며 내 질문에 두 부분이 있음을 깨달았습니다.
예를 들어 키워드가없는 이유
private def myFunc(): dostuff....
IMO 대신 추악하고 입력하기 어려운 밑줄. 그러나 그것은 중요한 요점이 아닙니다.
더 중요한 것은:
이러한 액세스 수정자가 왜 '권장 사항'또는 힌트 일 뿐이며 적용되지 않는 이유는 무엇입니까? 나중에 변경하기 어려울까요? '보호 된'을 '공개'로 변경하는 것은 매우 간단합니다. 복잡한 상속 체인을 사용하여 어렵게 만들면 디자인이 나쁩니다. 쉽게 작성할 수있는 언어 기능에 의존하기보다는 디자인을 개선해야합니다. 잘못 구조화 된 코드.
액세스 수정자가 적용되면 코드가 자동으로 구획화됩니다. 특정 세그먼트가 범위를 벗어 났음을 알고 필요한 경우와 필요한 경우를 제외하고는 처리하지 않아도됩니다. 그리고 디자인이 좋지 않고 끊임없이 다른 범위로 들어오고 나가는 것을 발견하면 언어가 행동을 정리하는 데 도움이 될 수 있습니다.
파이썬을 좋아하는 한이 두 번째 포인트가 심각한 결함이라는 것을 알았습니다. 그리고 나는 이것에 대한 좋은 대답을 아직 보지 못했습니다.
private def whatever
이며, class x: def whatever(self): pass
대한 바로 가기입니다 class x: pass; x.whatever = lambda self: pass
그래서 기본적으로는, 당신은 과제에 대한 개인 modificator을 필요