파이썬 중급3 - 클래스(1)

Jasmine·2023년 3월 22일
0

파이썬 중급

목록 보기
3/12

객체지향 프로그래밍

  • 객체는 속성과 기능으로 구성
  • 객체는 클래스에서 생성된다 (클래스 내에 여러 객체)
  • 객체 사용의 장점
    : 코드 재사용, 모듈화에 좋다
    : 객체와 객체가 결합도가 낮으면 좋다. 언제든지 교체해서

클래스와 객체 생성

  • class 키워드 : 클래스명은 보통 대문자로 함
  • 속성(변수) : init 메소드 사용하여 속성 생성
  • 기능(함수) : 함수 선언으로 기능 생성

📋실습 : Car 클래스를 만들고 객체 2개 생성해보자

객체 속성 변경

: 변경할 속성에 각각 접근해서 새로운 값을 넣어주면 됨

📋실습 : 계산기 클래스를 만들고 사칙연산을 실행해 보자

객체와 메모리

  • 변수는 객체의 메모리 주소를 저장하고 이를 이용해서 객체를 참조한다.

rb3 = rb1 로 넣으면, (얕은복사)
rb3은 rb1의 객체를 저장한 메모리 주소를 같이 참조함 (새로 rb3 메모리를 차지하는게 아님)
∴두 변수가 같은 객체를 참조함

📋실습 : 국어, 영어, 수학 점수를 입력받아 리스트에 저장하고 원본을 유지한 상태로,
복사본을 만들어 과목별 점수를 10% 올렸을 경우에 평균을 출력해 보자

변수.copy를 하면 아예 메모리가 복사돼서 두 곳에 저장됨 (깊은복사)

객체 복사 : 얕은복사와 깊은복사

  • 얕은 복사 :객체 주소를 복사하는 것으로 객체 자체가 복사되지 않는다.
  • 깊은 복사 : 객체 자체를 복사하는 것으로 또 하나의 객체가 만들어진다. 서로 다른 객체.

  • 얕은복사 (실습)

tc2 = tc1					#얕은복사 (같은 객체주소 참조)
  • 깊은복사 (실습)

import copy					#copy 모듈 사용

tc2 = copy.copy(tc1)		#깊은복사 (tc1과 tc2는 서로 다른 객체)
  • 리스트 깊은복사 (4가지 방법)

scoresCopy = scores 		#얕은복사

for s in socres:			#for~ in 사용
	scoresCopy.append(s)
    
scoresCopy.extend(scores)	#extend()함수

scoresCopy = scores.copy()	#깊은복사 함수

scoresCopy = scores[:]		#리스트의 슬라이싱 사용. 범위 [:] (맨앞부터 맨끝까지)

📋실습 : 선수의 원본 점수를 이용해서 평균을 출력하고, 최고값과 최저값을 제외한 평균을
출력하는 프로그램을 만들어보자.

.
.
.

🔥제로베이스 데이터 사이언스 취업스쿨 13기🔥

profile
데이터직무를 위한 공부 기록

0개의 댓글