본문 바로가기

파이썬

(4)
type - Class에 대한 이해 1(Python) 1. 들어가기 다들 Python을 공부하면서 한번 쯤은 이런 말을 들어보았을 것이다. Python의 모든 것은 객체이며, class 또한 어떤 class의 instance다. 그렇다면, class instance를 생성할 수 있게 해주는 어떤 class는 무엇일까? Python은 Programing을 할 때, 객체 instance를 생성할 수 있는 class를 작성하기 위해 class 명령어를 사용한다. class ParentClass:... class NewClass(ParentClass): def __init__(self, *args, **kwargs) -> None: ... def method(self, *args, **kwargs) -> None: ... print(NewClass, type(Ne..
인터페이스 (interface) in python 객체지향 프로그래밍에서 인터페이스가 무엇일까? 우선 인터페이스의 정의를 살펴보자. 인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다. - 위키백과 인터페이스는 서로 다른 시스템이나 장치 사이의 정보나 신호를 주고받는 경계면을 의미한다고 한다. 이렇게만 보면 정확히 어떤 의미인지 이해하기 어렵다. 객체지향 프로그래밍에서 인터페이스는 클래스가 반드시 가져야하는 메소드를 정해준다. 인터페이스를 상속받은 클래스는 인터페이스에서 선언한 메소드를 반드시 재정의해서 사용해야 한다. 재정의하지 않고 해당 클래스로 객체를 생성하려고 하면 에러를 발생시킨다. 정의를 객체지향 언어에 대입시켜 생각해..
추상클래스 (Abstract class) in python 객체지향 프로그래밍을 할 때 추상클래스라고 나오는 것이 있다. 아직 활용을 완벽하게 이해하지 못하였지만, 간단하게 정리해 보았다. 추상클래스 1. 하나 이상의 정의되지 않은 메소드, 즉 추상메소드가(abstract method)가 있는 클래스를 의미한다. 2. 이를 상속받아 사용하는 자식클래스에서 추상메소드를 오버라이드(override)해서 사용하게 한다. 3. 추상클래스에 공통적인 부분을 모두 정의하고, 자식클래스에서 필요한 부분을 재정의해서 사용하는 것이 목표. 바로 이해가 되지는 않는다. 간단한 코드를 예시로 들어보자. class 로봇추상클래스: """이 클래스는 로봇의 추상클래스 입니다""" def __init__(self, 이름, 나이): self.이름 = 이름 self.나이 = 나이 def _..
데코레이터 (Decorator) in python 파이썬 데코레이터를 공부해 보자. 우선 아래와 같이 연습용 함수를 두개 만든다. def 데코레이터 (함수) : def 감싸는함수 () : 결과 = 함수() return 결과 return 감싸는함수 def 제곱 (입력) : 결과 = 입력**2 return 결과 입력 = 3 결과 = 제곱(입력) print(결과) 위 코드 블럭을 실행시키면 "변수: 입력 = 3"이 제곱 함수의 인자로 들어가서 결과로 9 반환, "변수: 결과 = 9"로 저장하고 이를 출력한다. 일반적으로 많이 사용하는 기초적인 함수 구조이다. 데코레이터 함수는 인자(argument)로 함수(function)를 입력받는다. 함수가 인자로 함수를 입력받는다는게 어떤 의미일까? 이를 설명하기 위해서 콜백함수(callback) 함수에 대해서 알아야 ..