2020/02/15(24)
-
파이썬에서 다형성
다형성(Polymorphism) · 상속 관계 내의 다른 클래스들의 인스턴스들이 같은 멤버 함수 호출에 대해 각각 다르게 반응하도록 하는 기능입니다. · 연산자 오버로딩도 다형성을 지원하는 중요한 기술입니다. 다형성의 장점 · 적은 코딩으로 다양한 객체들에게 유사한 작업을 수행시킬 수 있습니다. · 프로그램 작성 코드 량이 줄어듭니다↓. · 코드의 가독성을 높혀줍니다↑. 파이썬에서 다형성의 장점 · 자료형 선언이 없다는 점에서 파이썬에서는 다형성을 적용하기가 더욱 용이합니다. · 실시간으로 객체의 형이 결정되므로 단 하나의 메소드에 의해 처리될 수 있는 객체의 종류에 제한이 없습니다. 즉, 다른 언어보다 코드의 양이 줄어들게 됩니다.
-
메서드(Method)
메서드(Method) 클래스안에 있는 멤버함수를 지칭합니다. 클래스 내부에 메소드 선언 · def 키워드 사용하여 메소드를 선언합니다. · 일반 함수와 다른 점은 첫번째 인수로 self를 사용합니다. (self라는 이름은 관례적으로 사용되고 있습니다.) · self는 인스턴스 객체 자신의 레퍼런스를 지니고 있습니다. 각 인스턴스들은 self를 이용하여 자신의 이름 공간에 접근할 수 있습니다. 구분 설명 Unbound method call · 클래스 객체를 이용한 메소드 호출 · 예: MyClass.set(c, 'egg') Bound method call · 인스턴스 객체를 통한 메소드 호출 (self 인자는 호출받은 객체가 자동으로 할당되어집니다.) · 예: mc.set('egg')
-
인스턴스 메서드(instance method)
인스턴스 메서드(instance method) · 일반 함수와 다른 점은 첫번째 인수로 self를 사용합니다. · self는 인스턴스 객체 자신의 레퍼런스를 지니고 있습니다. 각 인스턴스들은 self를 이용하여 자신의 이름 공간에 접근합니다. · 가장 흔히 쓰이는 인스턴스 메서드는 인스턴스 변수에 엑세스할 수 있도록 메서드의 첫번째 파라미터에 항상 객체 자신을 의미하는 "self"라는 파라미터를 갖습니다. · 인스턴스 메서드는 여러 파라미터를 가질 수 있지만, 첫번째 파라미터는 항상 self 를 갖습니다. · 인스턴스 메서드는 "객체변수.메서드명()"과 같이 호출할 수 있습니다.
-
Generator function(제네레이터 함수)
Generator function(제네레이터 함수) · Generator는 Iterator의 특수한 한 형태입니다. · 함수 안에 return 대신 yield구문을 이용해 함수 객체를 유지한 채 값을 호출자에 넘겨줍니다. yield 를 사용하여 데이터를 하나씩 리턴하는 함수입니다 · 값을 넘겨준 후 함수 객체는 그대로 유지되며 함수의 상태를 그대로 유지하고 다시 호출 할 수 있기 때문에 순회가능한 객체를 만들 때 매우 유용합니다. · Generator 함수가 처음 호출되면, 그 함수 실행 중 처음으로 만나는 yield 구문에서 값을 리턴합니다. · Generator 함수가 다시 호출되면, 직전에 실행되었던 yield 문 다음부터 다음 yield 문을 만날 때까지 문장들을 실행하게 됩니다. · 이러한 Ge..
-
시퀀스/매핑 자료형의 연산자 중복
시퀀스/매핑 자료형의 연산자 중복 · 클래스를 개발할 때 자신만의 시퀀스 자료형을 만들 때 사용할 수 있는 메소드들입니다. · 시퀀스 자료형 및 매핑 자료형을 위해 구현이 필요한 메소드입니다.
-
filter()
filter() · list 나 dictionary 같은 iterable 한 데이터를 특정 조건에 일치하는 값만 추출해 낼때 사용하는 함수 · 함수의 결과 값이 참인 시퀀스 객체의 이터레이터를 반환합니다. · None이 오는 경우 필터링하지 않습니다. parameter description function 수행할 함수 iterable 시퀀스 자료형 list(filter(lambda x: x > 0, range(-5,10))) >>> [1, 2, 3, 4, 5, 6, 7, 8, 9] 리스트 내포를 이용하여 구현 ambda와 filter를 이용한 표현 방식은 리스트 내포를 이용해서도 충분히 구현가능합니다.