파이썬 (객체지향)

김현희·2026년 4월 9일
  1. 객체지향 프로그래밍
  2. 클래스, 객체(인스턴스)
  3. 생성자 constructor : init(self)
  4. 클래스 변수 vs 인스턴스 변수
  5. str 메서드
  • 클래스 변수 : 모든 인스턴스가 공유하는 변수 / 클래스.dict에 저장 : 클래스 당 1개만 존재
  • 인스턴스 변수 : 각 객체마다 독립적으로 가지는 변수 / init안에 저장 : self에 연결

1. 객체지향 프로그래밍

  • 데이터를 어떻게 구조화하는지 정의하고 해당 데이터를 수정할 수 있는 함수를 제공하는 프로그래밍 방식

객체지향의 주요 특징

  1. 캡슐화(Encapsulation) : 환자의 개인정보와 의료기록을 하나로 묶어 관리하고, 권한이 있는 사람만 접근할 수 있도록 보호할 수 있음

  2. 상속 (Inheritance): 일반 직원 → 의사, 간호사로 확장하여 공통 특성은 재사용하고 고유 특성만 추가

  3. 다형성 (Polymorphism) : 환자마다 다른 치료법이지만 '치료하기'라는 같은 인터페이스 사용

  4. 추상화 (Abstraction) : 복잡한 의료 과정을 핵심 기능만 추출하여 단순하게 표현


절차지향 vs 객체지향

  • 절차지향 : 문제를 순차적인 함수들로 해결하는 방식
  • 객체지향 : 관련된 데이터와 기능을 객체로 묶어서 해결하는 방식

2. 클래스, 객체(인스턴스)

  • 클래스 = 아파트 설계도 / 객체(인스턴스) = 실제 지어진 집으로 비유할 수 있음.
  • 클래스라는 틀을 만들고, 그 틀을 이용해서 여러 개의 객체를 만든다. 그리고 각 객체는 자신의 값을 갖데 됨.
  • 클래스 = 공통 구조 정의 / 객체 = 실제 데이터 + 행동 --> 같은 클래스라도 객체마다 값이 다름.

클래스 작성 규칙

  1. 클래스명은 PascalCase 사용 (각 단어의 첫 글자 대문자) -> '_'사용하지 않고 대문자로 구분
  2. 클래스 안의 모든 인스턴스 메서드는 첫 번째 인자가 self

변수

  • 클래스 변수는 모든 인스턴스가 공유하는 변수
  • 인스턴스 변수는 각 객체마다 독립적으로 가지는 변수
  • 태어날 때 자동으로 생기는 기본 설정이라고 생각하면 됨. 즉 직접호출하지 않아도 자동적으로 함수가 호출되서 나옴.

3. 생성자 constructor : init(self)

  • 객체를 생성하는 자
  • 객체가 만들어질 때 자동으로 호출함.
  • 객체가 만들어질 때 해야 할 일들을 기술
  • 객체 안에 있는 변수(인스턴스 변수)를 초기화할 때 사용

요리로 비유

  • 클래스 = 요리 레시피
  • 객체 = 완성된 음식
  • 인스턴트 변수 = 재료
  • 생성자(init) 재료 넣기

self 키워드

  • self는 현재 객체 자신을 가리키는 대명사 역할
  • 인스턴스의 속성과 메서드에 접근할 때 사용
  • 클래스 안의 모든 인스턴스 메소드는 자동으로 첫 번째 인자를 self로 받음



문제1

  1. student 클래스를 만들고
  2. 생성자를 이용하여 이름, 국어, 영어, 수학 만들기
  3. 출력하는 메서드(prt)를 이용하여 이름, 국어, 영어, 수학, 총점, 평균을 출력하는 메서드 만들기

4. 클래스 변수 vs 인스턴스 변수






5.str 메서드

  • str는 객체를 사람이 읽기 쉽게 보여주기 위한 함수

  • 장점: 디버깅이 쉬워짐, 출력 코드가 깔끔해짐, 객체를 “데이터처럼” 쓸 수 있음

  • str는 자동으로 호출됨 --> 출력용이라 데이터 자체가 바뀌는 건 아님

  • str 메서드는 객체를 문자열로 표현하는 방법을 정의하는 특별한 메서드

  • print() 함수로 객체를 출력하거나 str() 함수를 사용할 때 자동으로 호출됨


오늘은 함수랑 객체지항을 나눠서 공부한 날이라 6일차 글을 두 번 게시했다!

함수를 처음 공부할 때는 함수 부분이 제일 어려운 줄 알았는데...
객체지항을 접하니 함수는 괜찮은 편이었던것 같다.^^;;

그래도 자주 공부하다 보면 익숙해지는 날이 오겠지! 힘내자!

profile
AI 헬스케어 공부하는 간호사

0개의 댓글