메소드 meth()를 구현해야하는 클래스 A가 있습니다. 이제 패키지의 최종 사용자가이 메서드를 호출하는 것을 원하지 않습니다. 따라서이 메소드를 private (예 : _meth())로 설정해야합니다. 실제로는 개인이 아니지만 컨벤션이 중요하다는 것을 알고 있습니다.공용 사용을위한 파이썬 개인 메소드
문제는 패키지에 다른 클래스 B가 있어야한다는 것입니다. 그 메서드 _meth()를 호출하십시오. 문제는 B가 클래스의 보호 된 메서드에 액세스하려고한다는 경고 메서드가 생겼다는 것입니다. 따라서 메소드를 public으로 만들어야합니다. 즉, 앞에 밑줄을 쓰지 않아야합니다. 이것은 내 의도와 모순된다.
이 딜레마를 해결하는 가장 무난한 방법은 무엇입니까? 메타로() 같은 문제로 이어질 것입니다, (A)의 개인 속성을 사용
나는 내가 밖에서 그 방법을 다시 구현할 수 있습니다 알고 있지만, 코드 중복으로 이어질 것입니다.
하나의 메타 클래스를 상속하는 것은 완전히 다른 목적을 가지고 있으며 무시 무시한 혼란에 기여할 수 있기 때문에 옵션이 아닙니다.
클래스 A의 객체를 클래스 B에 만들거나 전달할 수 있습니까? –
아마 편집기에서 경고 메시지가 표시되지만 어쨌든이 메서드를 호출 할 수 있습니다. – Matthias
@DeepSpace 필자는 그것에 대해 생각했지만 최종 사용자는 공용 래퍼 자체를 호출 할 수 있습니다. –