파이썬 중급(5)_객체&메모리, copy( ), sort( ), 상속, 생성자

Jio.B·2023년 6월 12일

(ZB) DS 16기_part01_python

목록 보기
28/48

  1. 객체와 메모리
    • 객체는 class로 부터 생성(in 메모리)되어 호출된다
    • 변수에는 (객체 데이터가 직접 담기는 것이 아니라) 객체가 메모리의 어느 위치에 저장되어 있는지를 표시하는 메모리 주소를 저장하는 것임
      = 즉, 주소값을 갖고 객체를 참조하는 이런 변수를 '레퍼런스 변수'라고 부름

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

  • [참고] copy( ) 함수를 이용하여 복사본 만들기

  1. 얕은 복사 & 깊은 복사
  • 얕은 복사 : 객체 주소를 복사하는 것, 객체 자체가 복사되지는 않음
    (1개의 레퍼런스 변수, 2개의 객체)
    즉, 객체 주소를 복사하는 것으로 객체 자체가 복사되는 것이 아님
  • 깊은 복사 : 객체 자체를 복사하는 것, 또 다른 하나의 객체를 생성하는 것을 의미함
    (2개의 레퍼런스 변수, 2개의 객체)

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

  • [참고] sort( ) 함수를 이용하여 리스트 오름차순으로 정리

  1. 클래스 상속

<예시>

  1. 생성자

    객체가 생성될 떄 생성자를 호출하면 init()가 자동 호출됨

init( )

[참고] 모듈 관리시, 실행(메인) 파일을 구분지어주기 위한 명령어
if name == "main"

super( )

  • 기능은 상속만 하면 바로 사용가능
  • but 속성은 init()가 호출되어야 속성이 초기화될 수 있음
    즉, 상위 클래스의 init()를 호출하기 위하여 super( )를 이용, 강제로 호출해야 함.

0개의 댓글