분류 전체보기(14844)
-
연산자 중복 (Operator Overloading)
연산자 중복 (Operator Overloading) · 사용자 정의 객체에서 필요한 연산자를 연산자 중복을 통해 내장 타입과 형태와 동작이 유사하도록 재정의할 수 있습니다. · 연산자 중복을 위하여 두 개의 밑줄 문자(__)가 앞뒤로 있는 메소드(매직 메소드)를 재정의합니다. · 직접 정의하는 클래스 인스턴스에 연산자를 재정의하기 위하여 미리 약속되어 있는 메소드들을 재정의합니다.
-
클래스 메서드와 정적 메서드
클래스 메서드와 정적 메서드 · 클래스 메서드는 정적 메서드와 비슷한데, 객체 인스턴스를 의미하는 self 대신 cls 라는 클래스를 의미하는 파라미터를 전달받습니다. 정적 메서드는 cls 파라미터를 전달받지 않습니다. 클래스 메서드는 이렇게 전달받은 cls 파라미터를 통해 클래스 변수 등을 엑세스할 수 있습니다. · 일반적으로 인스턴스 데이터를 엑세스 할 필요가 없는 경우 클래스 메서드나 정적 메서드를 사용하는데, 이때 보통 클래스 변수를 엑세스할 필요가 있을 때는 클래스 메서드를, 클래스 변수를 엑세스할 필요가 없을 때는 정적 메서드를 사용합니다.
-
모듈 vs 클래스 vs 인스턴스
모듈 vs 클래스 vs 인스턴스
-
정적 메서드(static method)
정적 메서드(static method) · 인스턴스 객체와 무관하게 클래스 이름 공간에 존재하는 메소드로서 클래스 이름을 이용하여 직접 호출할 수 있는 메소드입니다. · 인스턴스 객체를 참조하는 self 인자가 필요하지 않습니다. · 인스턴스 메서드가 객체의 인스턴스 필드를 self를 통해 엑세스할 수 있는 반면, 정적 메서드는 이러한 self 파라미터를 갖지 않고 인스턴스 변수에 엑세스할 수 없습니다. 따라서, 정적 메서드는 보통 객체 필드와 독립적이지만 로직상 클래스내에 포함되는 메서드에 사용됩니다. · 정적 메소드는 해당 클래스의 인스턴스를 통해서도 호출 가능하지만 권장하지 않습니다. · 정적 메서드는 메서드 앞에 @staticmethod 라는 장식자(Decorator)를 표시하여 해당 메서드가 정..
-
파이썬에서 다형성
다형성(Polymorphism) · 상속 관계 내의 다른 클래스들의 인스턴스들이 같은 멤버 함수 호출에 대해 각각 다르게 반응하도록 하는 기능입니다. · 연산자 오버로딩도 다형성을 지원하는 중요한 기술입니다. 다형성의 장점 · 적은 코딩으로 다양한 객체들에게 유사한 작업을 수행시킬 수 있습니다. · 프로그램 작성 코드 량이 줄어듭니다↓. · 코드의 가독성을 높혀줍니다↑. 파이썬에서 다형성의 장점 · 자료형 선언이 없다는 점에서 파이썬에서는 다형성을 적용하기가 더욱 용이합니다. · 실시간으로 객체의 형이 결정되므로 단 하나의 메소드에 의해 처리될 수 있는 객체의 종류에 제한이 없습니다. 즉, 다른 언어보다 코드의 양이 줄어들게 됩니다.
-
메서드(Method)
메서드(Method) 클래스안에 있는 멤버함수를 지칭합니다. 클래스 내부에 메소드 선언 · def 키워드 사용하여 메소드를 선언합니다. · 일반 함수와 다른 점은 첫번째 인수로 self를 사용합니다. (self라는 이름은 관례적으로 사용되고 있습니다.) · self는 인스턴스 객체 자신의 레퍼런스를 지니고 있습니다. 각 인스턴스들은 self를 이용하여 자신의 이름 공간에 접근할 수 있습니다. 구분 설명 Unbound method call · 클래스 객체를 이용한 메소드 호출 · 예: MyClass.set(c, 'egg') Bound method call · 인스턴스 객체를 통한 메소드 호출 (self 인자는 호출받은 객체가 자동으로 할당되어집니다.) · 예: mc.set('egg')