본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/Python

210427_클래스 2

by 케리's 2021. 4. 27.

 

* 클래스 생성 후 연동 함
* 클래스 맴버를 선언하고 생성자와 소멸자를 이해함
* 클래스 선언및 객체 생성, 멤버 호출을 실행함

 

클래스

사용자 자료형 = 변수 + 메소드

 

캡슐화

은닉된 멤버 변수에게 오픈된 메소드가 값 전달 및 변경하는 구조


상속  

클래스의 기능을 확장, 선조 클래스가 1일경우 단일상속, 1more(+) 다중상속 이라고 부른다.
    정규패턴 (+ → 1more,   * 0more) , ... (0more), 

ex)
     def test(...) : 없을수도있고 여러개일수도 있다
    


다형성  

다양한 형태의 성질로 이루어진 클래스의 동적 바인딩 구조

 

클래스 생성

자료형선언 → 객체생성 멤버호출

 

[형식]
    class 클래스 이름 (상속 클래스명):
            <클래스 변수 선언>
             def 클래스 함수(메소드이름)(self,...):
                → 클래스 내부에 선언되는 매개인자는 첫번째 자리에 self
                  <수행할문장>

 

 

Step 01. 자료형, 클래스 선언


  값을 받아서 저장하고 추가하는 클래스를 만들려고 한다.
  값을 받아 저장하는 멤버를 가진 메소드를 empty( )라고 하고
  값을 받아 추가하는 메소드를 add( ) 라고 명명하게 설계하자.
    class Test:
        def empty(self):

            self.data = [ ]

       def add(self, x):

            self.data.append(x)

 

Step 02. 객체 생성

 

  Test 클래스가 선언 및 정의가 되면 클래스 객체 생성을 통한 인스턴스를 만든다.
  클래스변수 = 클래스명( ) #생성자를 호출하면서 객체를 생성
        my01  = Test( )
        my02  = Test( )

 

Step 03. 멤버 호출

 

      my01.empty( )

      my02.empty( )

 

 

 

 

 

 

 

메소드에 지정하는 self 의 의미

  클래스 내부에 선언되는 메소드 매개인자는 첫번째 자리에 self로 반드시 명시한다.
  모든 메소드는 최소한 self 인수는 반드시 명시되어야 하며 리턴되거나 매개인자로 대입받을 수 없다.
  객체를 통해서 호출되는 메소드의 첫번째 매개인자인 self 는 자동으로 객체 참조될 주소로 대입 받는다.
  self를 통해서 클래스의 멤버 변수 또는 메소드를 자유롭게 클래스 내부에서 호출할수있다.

 

 

oop에서 접근 제한자 

private (비공개), protected(상속시공개), public (공개), defalut (현재 패키지에서만 공개)

 __ = non-public


 ex)
    class Test{
        __a // 비공개  t1=Test()
                            t1.a 호출불가능
    def prn(){
        self.a
    }
    }

 

 

 

 

 

 

 

클래스의 내장함수 

  파이썬에서 사용되는 모든 클래스 안에서 사용할 수 있는 특별한 메소드를 말한다.
  클래스의 내장함수는 크게 (생성자, 소멸자), 연산자 오버로드, 기본 자료형 중 시퀀스 자료형에서 사용되는 인덱싱 관    련 함수 등의 세가지로 나뉜다.

 

  생성자 __init__(initialization) 객체가 인스턴스 화 될때 호출되는 특수 메소드
  소멸자 __del__(desructor) 인스턴스가 소멸될 때 호출되는 특수 메소드

 

 

'|Playdata_study > Python' 카테고리의 다른 글

210429_클래스4  (0) 2021.04.30
210428_클래스3  (0) 2021.04.28
210426_클래스1  (0) 2021.04.26
210426_함수2  (0) 2021.04.26
210423_함수1  (0) 2021.04.24

댓글