본문 바로가기

PYTHON 공부 - PY4E

PY4E - Chapter 14 Python Objects

Part 1


1. 객체를 이용하고 용어를 익히는 것 뿐. 단어를 이해하는 것이 목표다.
2. 프로그램에는 많은 오브젝트가 있다.

3. 딕셔너리와 리스트를 다루는 것은 오브젝트를 다루는 것이다.

4. 객체는 하나의 작은 물체다.

5. 그렇기에 그 자체의 작은 공간이 프로그램의 일부를 차지하고 있다.

 

 

6. 객체 안에는 코드와 데이터가 담겨져 있다.

7. 사용할 수 있는 객체에는 경계가 존재하며, 이 경계가 인터페이스이다.

8. 객체를 이해할 필요는 없다. 설명서를 읽어보고 실행하면 끝이다.

9. 수많은 객체들이 소통하여 하나의 응용 프로그램을 구축한다.

10. 객체 지향 형태의 좋은 점은 그들의 경계를 형성한다는 것이다.

 

 

11. 객체라는 경계를 가지고 만드는 사람과 이용하는 사람이 나뉘는 것은 좋은 패턴이다.

12. 객체 내에 어떤 정보가 어떻게 있을 지에 대한 정의가 클래스다.

13. 클래스의 핵심은 쿠키틀처럼 하나의 템플릿이라는 것이다.

14. 클래스는 모양과 특징을 결정한다.

 

 

15. 우리가 쓰는 각각의 객체에 대한 코드는 클래스의 코드다.

16. 클래스를 통해 객체와 인스턴스를 만든다.

17. 클래스에 정의에는 메쏘드=코드=클라스 내의 함수와 필드=에트리뷰트=클래스 내의 정보가 필요하다. 
18. 필드 또는 애트리뷰트는 객체 내의 정보 덩어리로, 접근이 가능할 수도 불가능할 수도 있다.
19. 변수를 클래스 밖에서 정의해서 프로그램 내에서 사용이 가능하다.

 

20. 코드를 메소드 혹은 메시지라고 부르며, 필드도 속성이라고 불린다.

21. 클래스는 추상적인 개념이며, 객체와 인스턴스로 실체화 된다.



Part 2


 

...더보기
class PartyAnimal: # 클래스를 선언
   x = 0 # 클래스의 데이터, 필드, 에트리뷰트 선언

   def party(self) : # 클래스의 매쏘드, 함수, 메시지 선언
     self.x = self.x + 1
     print("So far",self.x)

an = PartyAnimal() #객체를 an이라는 변수에 저장
an.party()
an.party()
an.party()
PartyAnimal.party(an)

1.클래스는 템플릿이고 객체는 인스턴스다 

2. 객체를 구축해서 an이라는 변수와 결합하는 것으로 볼 수 있다.

3. y.strip()이 있다면, y는 객체, .은 연산자, strip()은 메쏘드다.
4. dir을 통해, class 타입, 메소드, 속성 값을 볼 수 있다

Part 3

 

1. 객체의 생성과 제거를 하기 위해 우리가 변수를 선언 할때 메모리에 할당 되고 제거된다.
2. 이것에 개입하기 위해  생성자/소멸자라는 특수한 함수를 사용하게 된다.
3. 생성자가 소멸자보다 많이 사용된다.
4. 하나의 클래스로부터 많은 인스턴스/객체를 만들 수 있다. 그리고 그 객체들은 각자의 변수에 저장되어 다른 변수를 다룬다.

 

class PartyAnimal:
   x = 0 # 이 클래스는 x를 데이터로 갖음
   name = '' #또 name이라는 데이터t도 갖음
   def __init__(self, nam): # __init__는 초기화 메서드 혹은 생성자라고 불리며
   # 함수의 인자들을 다음과 같이 인스턴스를 만들 때 선언해야 한다. instance =Class(param1, param2)
   # 즉  nam이라는 매개변수를 선언해준 것이다.
   
     self.name = nam # 이 클래스의 name 매개변수가 nam이고
     print(self.name,'constructed') #이 클래스가 매개변수 name을 만나면 생성된다.

   def party(self) :# 이 클래스의 Party라는 함수는
     self.x = self.x + 1 #이 클래스의 x값에 1을 더한 값을 다시 x값에 할당하는 것이다.
     print(self.name,'party count',self.x) #그리고 이 클래스의 name값, 'party count', x값을 출력한다.

s = PartyAnimal('Sally') # PartyAnimal의  name 매개변수에 'Sally' 인자를 할당  s 인스턴스 생성
j = PartyAnimal('Jim') # PartyAnimal의 name 매개변수에 'Jim' 인자를 할당 j 인스턴스 생성

s.party() # s인스턴스의 party함수 실행
j.party() # j인스턴스의 party함수 실행
s.party() # s인스턴스의 party함수 실행

 

Part 4

 

1. 상속이란 코드 재사용의  한 형태
2. 새로운 클래스를 만드는 것이 아니라 기존의 클래스로부터 다른 클래스를 만드는 것.

3. 서브클래스라고도 
4.기존의 클래스가 부모가 되고 새로운 클래스가 자식이된다.
5. 상속은 아주 강력하고 아름다운 재사용이다.

 

6. 클래스는 형식이며 실제 어떤 것이 아니라 모양이다.
7. 그것들을 정의하고 만들 때, 변수들을 가지고 메소드를 가지게 된다고 알려준다.
8. 속성은 클래스 내의 변수, 매소드는 클래스 한정 함수
9. 우리가 클래스를 생성할 때 객체를 돌려 받는다
10. 생성자는 하나의 코드 집합이며 객체와 인스턴스를 만들 때 설정한다.

 

 

11. 상속은 새로운 클래스를 만드는 능력으로 기존의 존재하는 클래스의 기능들을 활용/확장 가능하다.
12. 우리는 여태까지 계속해서 객체를 사용해 왔다.