본문 바로가기

Inheritance7.2

Python 파이썬에서 추상 클래스와 인터페이스의 차이, Difference between abstract class and interface in Python 질문 파이썬에서 추상 클래스와 인터페이스의 차이점은 무엇인가요? 답변 가끔 다음과 같은 것을 볼 수 있습니다: class Abstract1: """어떤 설명이 추상 클래스임을 알려주는 것, 종종 제공해야 할 메소드들을 나열합니다.""" def aMethod(self): raise NotImplementedError("이것을 구현해야 합니다") Python은 (그리고 필요하지도 않기 때문에) 형식적인 인터페이스 계약이 없기 때문에, 추상화와 인터페이스 사이의 Java 스타일의 구분은 존재하지 않습니다. 누군가 형식적인 인터페이스를 정의하는 노력을 거치면, 이것은 또한 추상 클래스가 될 것입니다. 유일한 차이점은 docstring에 명시된 의도일 것입니다. 또한, 덕 타이핑이 있는 경우 추상화와 인터페이스 .. 2023. 8. 5.
Python 파이썬의 'private' 메소드들이 실제로는 왜 비공개가 아닌가요?, Why are Python's 'private' methods not actually private? 질문 파이썬은 클래스 내에서 이름 앞에 이중 밑줄을 사용하여 '비공개' 메서드와 변수를 생성할 수 있습니다. 예를 들어 이렇게 사용할 수 있습니다: __myPrivateMethod(). 그렇다면, 이것을 어떻게 설명해야 할까요? >>>> class MyClass: ... def myPublicMethod(self): ... print 'public method' ... def __myPrivateMethod(self): ... print 'this is private!!' ... >>> obj = MyClass() >>> obj.myPublicMethod() public method >>> obj.__myPrivateMethod() Traceback (most recent call last): File .. 2023. 6. 30.