Pythonベースオブジェクト


オブジェクト向けプログラミング


オブジェクトには属性と動作(メソッド、機能)があります.
プロパティは、オブジェクトが持つ値であり、動作はオブジェクトが実行できる機能です.

Pythonクラス

class 클래스이름:
	클래스 본체
    
클래스변수 = 클래스이름()

class Car :
	pass
car1 = Car()
print(car1)

구분 이름 역할
클래스 이름 Car 자동차 클래스이름
속성 _speed 차량의 속도변수
기능 get_speed 속도값 얻어오기
start 출발
stop 멈춤
accelerate 속도를 높이다

クラスとオブジェクト

  • self
    객체 자신을 가리키는 특수한 키워드
    다른 언어의 this 키워드와 유사한 개념을 가짐

モジュール

함수 또는 클래스를 포함하고 있는 파이썬 파일
import 구문으로 삽입하여 사용

継承の概要

class 클래스 이름(부모클래스) : 클래스 본체 내용

  • 기존 클래스와 유사한 클래스를 생성하는 경우 상속하는 것이 유리(is 관계)
  • 부모 클래스의 속성과 메소드를 자식 객체가 활용 가능
  • 파이썬은 기본적으로 최상위 클래스로 object클래스를 상속받고 있음
  • 파이썬은 다중상속을 지원함

オーバーライド(Override)

부모클래스에서 정의된 메소드를 재정의

서브 클래스에서 서로 다른 용도로 사용

クラス属性/インスタンス属性

생성되는 객체마다 별도로 메모리가 할당되는 변수 -> 인스턴스 속성

모든 객체마다 같은 메모리를 참조하여 하나만 할당되는 변수 -> 클래스 속성

方法

인스턴스 메소드 : 객체를 생성한 후 접근할 수 있는 메소드
클래스 메소드 : 객체를 생성하지 않고도 사용할 수 있는 메소드
 - 클래스 메소드는 첫번째인자 self를 사용하지 않음
 - 클래스메소드는 cls라는 인수를 넣어야함
 - 클래스 메소드 선언시 @classmethod 데코레이터를 사용해야 함
 
static 메소드 : 객체를 생성하지 않고 접근할 수 있는 메소드

 - 클래스 메소드와 같이 클래스 이름으로 접근
 - 메소드 선언 시 cls를 사용하지 않음
 - 메소드 선언 시 @staticmethod 데코레이터를 사용해야함
 

結果


結果