Chapter 05 객체지향 프로그래밍

Ruinak·2021년 8월 13일
0

BigData

목록 보기
5/7
post-thumbnail
  • 파이썬은 객체지향 프로그래밍 언어(Object Oriented Programming) 언어입니다.

  • 객체지향 프로그램에서 지원하는 클래스의 상속, 캡슐화, 오버로딩, 오버라이딩과 같은 다형성 등의 기능들을 제공할 뿐만 아니라 파이썬만의 추가적인 구문(syntax)과 의미(semantic)를 제공하고 있습니다.

1. 파이썬의 객체

  • 파이썬은 객체지향형 프로그래밍 언어이므로 모든 데이터들이 객체화되어 사용됩니다.
  • 객체는 클래스로 생성되며 이러한 객체는 특정한 값들을 저장하는 속성(attribute)들과 다양한 기능을 수행하는 메서드(method)들로 구성되어 있습니다.
  • 클래스로 객체를 생성하기 때문에 클래스에 정의한 이러한 속성과 메서드는 그대로 객체에 존재하게 됩니다.
  • 객체지향 언어에서 클래스의 속성을 '멤버변수'라고하고 메서드를 '멤버함수'라고 합니다.

2. 클래스로 객체 만들기>

  • 'main' 부분에서 이 클래스 You를 이용하여 객체 my를 생성합니다.
  • 클래스 You에 정의된 내용 그대로 객체가 생성되며, 속성과 메서드들을 my가 사용하게 되는 것입니다.
  • 속성은 name으로 이름을 저장하는 문자열형이며 메서드 중 하나는 main에서 받아온 문자열 이름을 속성 name에 저장하는 setname( )과 또 다른 하나는 속성에 저장된 이름을 화면에 출력하는 메서드 show( )입니다.
  • 클래스에서는 멤버변수 앞에 'self.'를 붙이는 것을 기억해야 합니다.
  • 파이썬에서는 멤버변수 앞에 항상 'self.'를 붙이기 때문에 별도로 멤버변수(속성)를 정의할 필요가 없습니다.

예제 5-1

3. 생성자

  • 위 예제에서는 멤버변수에 값을 입력하기 위해 별도로 메서드를 정의하였습니다.
  • 객체지향형의 클래스에는 기본적으로 멤버변수를 초기화하는 메서드가 따로 정해져 있습니다.
  • 이것을 생성자라고하며 생성자는 객체를 생성하면 자동으로 실행됩니다.
  • 이것이 가능하려면 클래스로 객체를 생성할 떄에 초기화할 값들을 입력해줘야 합니다.
  • 생성자의 이름은 init이며 앞뒤로 '__'를 입력해야합니다.

예제 5-2

4. 데이터형 객체의 개념

  • main 부분에서 3의 값을 저장한 객체를 x가 가리키고 있는데 func( ) 함수를 호출하게 되면 func( ) 함수 내부에서는 새로운 이름의 x 변수가 이 3의 객체를 가리키게 됩니다.
  • 따라서 2개의 다른 변수 x들이 같은 3의 객체를 가리키므로 이 2개의 변수 x들은 같은 메모리를 가리킵니다.
  • 하지만 func( ) 함수에서 'x = 5'의 명령으로 인하여 5의 값을 저장하는 새로운 객체가 생성되기 때문에 func( ) 함수 내의 x에는 3을 가리키던 주소가 지워지고 새로운 객체의 주소가 저장됩니다.

5. 다양하고 편리한 기능들

  • 1개의 사용자 정의 함수가 2개 이상의 값을 반환할 수 있습니다.
  • 위의 예처럼 1개씩 원소들을 가져올 수도 있지만 복수 개의 값들을 읽어올 수도 있습니다.
  • 2차원 배열로부터 2개씩의 값을 읽으면서 for문을 반복할 수 있습니다.

예제 5-3

6. 빈도수

  • 아래는 text 변수에 저장된 문자열에서 빈도수를 구하는 프로그램입니다.
profile
Nil Desperandum <절대 절망하지 마라>

0개의 댓글