[SK shiedlus Rookies 23]Python(4-2)_24.10.18

박소민·2024년 10월 29일

Python

목록 보기
10/23

<< 개요 >>

  • 파이썬 프로그램 - 코드작성 방법
    • 💥 절차적 코드
    • 💥 함수 지향적 코드
    • 객체 지향적 코드 (ex. GUI 프로그래밍 (pyQT) ➜ 윈도우프로그램)
    • 모든 방식을 유연하게 적용할수 있다 (섞어서 작성 가능)

class

엔티티(개체.Entity)

  • 이 세상에 존재하는 모든 유형, 무형(ex. 감정) 개체를 프로그램 세상에 코드로 표현하고 싶다 ➜ use.class 문법 ➜ ∴ 묘사(구현)
  • Ex > 자동차(유형의 엔티티를)를 파이썬으로 표현하고 싶다
  class Car():
    pass

객체(object)

  • 사용 절차
  1. 엔티티 선택
    -Ex > "자동차"
  2. 클래스 정의
    -Ex > 파이썬 문법으로 개체 묘사
                   class car():
                     	pass
  1. 객체 생성
    -class에 파이썬으로 작성(묘사)된 코드메모리에 로드되어야 작동
              car = Car()  #⇒ 변수명car/ 클래스명Car
  1. 도트 연산자 활용(.) 객체 사용가능
  • 맴버변수 ⇐ "접근"
          car.xxx 
  • 맴버함수 ⇐ "호출"
         car.xxxx()

📝📝 << 객체 생성 >>

  • 의미
    -메모리 상에 클래스의 인스턴스를 할당한다
    -클래스의 인스턴스는 객체이다
    -인스턴스 변수: self.변수명 = 값
          ⤷ (* 인스턴스: 클래스란 설계도를 바탕으로 메모리에 생성된 객체)
  • 특징
    -객체는 반드시 메모리상의 주소(참조값)를 가지고 있다.
    ⚡ id( 변수/객체/함수... )  #객체's 참조값 확인

-같은 객체 여러번 생성 가능
Ex > 슈팅게임 미사일 여러번 똑같은 총알 발사 => 객체

EX.01-A > id() 함수

EX.01-B > 객체는 언제든지 다른 값 설정 가능
EX.01-C > But. 변수명을 "키워드/내장함수명" 사용 X

클래스로 코드를 작성하는 이유

  • 관리상 용이
  • 업데이트 유리
  • 분업 수월하다 (=공통 작업 원활함)
    • 이외 장점 ... etc

class 문법

  • self(≒ this, in 자바): class 내부에서 자기 자신 객체를 지칭하는 키워드
class 클래스명[( [부모클레스...] )]:   #(1) 클레스 선언문
  
  def __init__(self, [매개변수]):  #(2) 생성자 함수
    [인스턴수 변수 초기화 가능]

  #클레스 맴버
  
  #맴버 함수

  #부모로부터 상속받은 함수
                                ↪️ "[]"의미 : 생략가능  

클래스 정의 ➕ 객체 생성 ➕ 객체 해제

Ex.01-A >

class의 구성원을 포함하여 구성

Ex.01-A > 클래스 정의 (1)
Ex.01-B > 객체 생성 (2)
Ex.01-C > 객체 사용 (3)

                   🔽🔽🔽

Ex.01-D > 클래스 / 인스턴스 멤버 변수 사용 (4)

멤버 변수 (2가지)

<< 클레스 변수 >>

  • 객체 생성 없이 사용 가능
                      ⤷ Ex. 유틸리티, 설정 구성으로 주로 사용
    << 인스턴스 변수 >>
  • 객체를 반드시 생성 후 사용

Ex.01-A > 멤버변수 - 클래스 변수
Ex.01-B > 유틸리티

멤버 함수

  • 클래스 내 함수
    : 인스턴스 함수
    • 사용자 정의 함수 형태
    • 1번인자는 무조선 self
  • (*)클레스 함수데코레이터 필요
  • (*)스페셜 함수
    : 정적(static) 함수 ➔ 데코레이터 필요
    • 1번 인자 - self 생략가능
    • 사용빈도가 높은편은 않음

Ex.01-A > 클래스 / 스페셜 함수

상속

: 부모의 모든 유산(데이터,변수) ➕ 행동(함수)을 상속받는다
🔹 상속자(클래스)
- 부모의 모든 자원 그대로 사용 가능
- 기능 추가 및 업데이트 가능

  • 이득점
    • Use.상속기법 ➜ 클래스로 구성된 라이브러리를 simply 업데이트 가능
  • 특징(팁)
    • "상속" 관점= 부모클레스 has a 자식클레스
    • "추상화" 관점= 자식클레스 is a 부모클레스
  • 다중 상속 지원
   class XMan4(IronMan,XMan3):
      pass

EX.01-A > 인간 클래스(부모) 정의
EX.01-B > 상속
EX.01-C > 상속 관계 확인

EX.01-D > 기능 추가 및 업데이트(1)
EX.01-E > 기능 추가 및 업데이트(2)

접근제어

  • public(공개)
    • 별도 키워드 X ➜ How. 이름으로 판단
  • private(비공개)
    • 은닉하기 위해서
    • 별도 키워드 X ➜ How. 이름으로 판단

      🔹 __XXXX : 비공개, 노출 x, 외부접근 허락 x
      🔹 _xxx : 외부 개발자가 굳이 알 필요 없다(접근OK), 내부에서만 사용가능

Ex.01-A >
Ex.01-B > 객체 맴버 접근 (Use. 도트 연산자)
Ex.01-C > 프라이빗한 객체 접근
Ex.01-D > 프라이빗한 객체 접근 - 방법

클래스의 기본 요소

0개의 댓글