Class

김남연·2024년 1월 5일

Python

목록 보기
11/12

Type

  • Integer, Float, String, Boolean, List, Set, Tuple, Dictionary...
  • Type = Class
  • Object = Instance
  • Method = Member Function

Fucntion isinstance()

  • isinstance(a,b) : a가 클래스 b의 인스턴스인지 논리값을 출력
>>> isinstance('abc',str)
True
>>> isinstance('abc',float)
False

Class

  • 클래스는 고유의 속성(attribute)과 동작(method)를 갖는 데이터타입으로 객체를 만들어내는 틀이다
  • 객체(인스턴스)는 클래스로부터 만들어지는 대상

Variable in class

  • 클래스에는 객체변수와 클래스변수가 있다

  • 객체 변수(= instance variable)는 객체마다 각각 지정되는 속성으로 각 객체를 구분한다

    클래스 내부에서 self.variable_name으로 정의된다

  • 클래스 변수(= member variable)는 클래스의 객체들이 공유하는 클래스 공통의 속성이다

    클래스 내부에서 사용할 때 class_name.member_variable로 사용한다

Methods

  • 클래스에서 정의되는 함수
  • 메소드를 정의할 때, 첫번째 파라미터는 self를 입력해야한다. self는 클래스의 객체를 의미함
  • 클래스 내부에서는 self.mehtod()로 외부에서는 instance.method()로 호출한다.
  • 정의할때 입력한 self는 호출할 때는 입력하지않는다.(dot앞에 객체를 지정했기때문)

Inheritance

  • 클래스의 속성, 메소드를 물려주는 상위 클래스의 내용을 하위 클래스가 그대로 가지는 것
  • 상위 클래스 : super class, base class, parents class
  • 하위 클래스 : sub class, derived class, child class
  • 하위 클래스는 상위 클래스의 메소드와 변수를 정의하지않아도 사용이 가능
  • 모든 클래스는 Python(object)의 하위클래스
  • 하위 클래스에 변수를 정의할 때 상위 클래스의 메소드를 하위클래스에서 사용할 수 있도록 고려하여 정의한다

Override and Overload

  • Override : 상위 클래스의 메소드를 재정의하는 것
  • Overloading : 상위 클래스의 메소드를 매개변수에 따라 다른 기능으로 동작할 수 있게 하는 것
  • super().method_name(parameter) : 상위 클래스의 메소드를 하위 클래스에서 호출

__init__ method(Constructor, 생성자)

  • 클래스가 만들어질 때 자동으로 실행되는 메소드
  • 클래스의 객체를 만들때 생성자의 파라미터를 입력해야 객체를 만들 수 있다.
  • 객체변수를 정의할때 생성자에 정의한다. (다른 방법도 있지만 생성자에 정의하는 것을 권장)

Magic methods

  • 파이썬(object)에서 이미 구현된 연산자나 메서드를 클래스 내부에서 오버로딩하는 것
  • __str__ : 객체를 문자열로 반환하는 메서드. print(객체)시 호출됨
  • __add__ : +연산자 사용시 호출되는 메서드
  • __mul__ : *연산자 사용시 호출되는 메서드
  • __sub__ : -연산자 사용시 호출되는 메서드
  • __truediv__ : /연산자 사용시 호출되는 메서드
  • __floordiv__ : //연산자 사용시 호출되는 메서드
  • __mod__ : %연산자 사용시 호출되는 메서드
  • __gt__ : >연산자 사용시 호출되는 메서드
  • __ge__ : >= 연산자 사용시 호출되는 메서드
  • __lt__ : < 연산자 사용시 호출되는 메서드
  • __le__ : <= 연산자 사용시 호출되는 메서드
  • __eq__ : ==연산자 사용시 호출되는 메서드
  • __ne__ : != 연산자 사용시 호출되는 메서드

Information Hiding(encapsulation)

  • 파이썬은 기본적으로 public. 즉, 접근에 제한이 없다. 이때 클래스에서 일부 데이터나 함수를 외부에서 접근하지 못하도록 private variable 이나 private method로 정의하는 것이 information hiding.
  • Private variable 또는 method는 변수,함수명 앞에 __를 붙여 정의한다.
  • Private variable에 접근하기 위해서는 개발자만이 아는 Getter, Setter함수를 정의한다.

Polymorphism(다형성)

  • 다형성이란 같은 이름의 메서드나 연산자를 다른 클래스에서 다르게 구현하는 것
  • 즉, 서로 다른 클래스에서 같은 이름의 메서드를 호출했을 때, 서로 다른 결과가 반환되는 것

0개의 댓글