프로그래밍 언어 활용
Python - 클래스
원본 86~87쪽
• 정의 형식
class 클래스명:
class는 예약어로, 그대로 입력하고 클래스명은 사용자가 임의로 지정한다.
실행할 문장
def 메소드명(self, 인수):
def는 메소드를 정의하는 예약어로, 그대로 입력하고, 메소드명은 사용자가 임의로 지정한다.
self는 메소드에서 자기 클래스에 속한 변수에 접근할 때 사용하는 명칭으로, 일반적으로 self를 사용하지만 사용자가 임의로 지정해도 된다.
‘인수’는 메소드를 호출하는 곳에서 보낸 값을 저장할 변수로, 사용자가 임의로 지정한다.
실행할 문장
return 값
return은 메소드를 호출한 위치로 값을 돌려주기 위해 사용하는 예약어로, 그대로 입력한다. return 값이 없는 경우에는 생략할 수 있다.
•‘값’에는 변수, 객체, 계산식 등이 올 수 있다.
• 객체의 선언 형식
변수명 = 클래스명( )
변수명은 사용자가 임의로 지정하고, 사전에 정의한 클래스명과 괄호( )를 적는다.
구현한 것이다.
class Cls:
Cls 클래스 정의부의 시작점이다. 여기서부터 ❼번까지가 클래스 정의부에 해당한다.
x, y = 10, 20
Cls 클래스의 변수(속성) x와 y를 선언하고, 각각 10과 20으로 초기화한다.
❹ def chg(self):
❺ temp = self.x
❻ self.x = self.y
❼ self.y = temp
❶ a = Cls( )
❷ print(a.x, a.y)
❸ a.chg( )
❽ print(a.x, a.y)
❶ Cls 클래스의 객체 a를 생성한다. 객체 a는 Cls의 속성 x, y와 메소드 chg( )를 갖는다.
• a : 사용자 정의 변수다. 사용자가 임의로 지정함
Cls( ) : 클래스의 이름이다. 괄호( )를 붙여 그대로 적음
a.x
a.y
| 10 | 20 |
|---|
a❷ a 객체의 속성 x와 y를 출력한다.
• 객체와 속성은 .(마침표)로 연결한다.
결과❸ a 객체의 메소드 chg를 호출한다. ❹번으로 이동한다.
10 20
객체와 메소드는 .(마침표)로 연결한 후 괄호( )를 붙여 적는다. ❹ a 객체의 메소드 chg의 시작점이다. 별도로 사용되는 인수가 없으므로 괄호( )에는 self만 적는다. ❺ a 객체의 속성 x의 값을 temp에 저장한다.
self : 메소드 안에서 사용되는 self는 자신이 속한 클래스를 의미함
• self.x : a.x와 동일함
a.x
a.y
| 10 |
|---|
| 10 | 20 |
|---|
temp
a
❻ a 객체의 속성 y의 값을 a 객체의 속성 x에 저장한다.
a.x
a.y
| 10 |
|---|
| 20 | 20 |
|---|
temp
a
❼ temp의 값을 a 객체의 속성 y에 저장한다. 메소드 chg가 종료되었으므로 메소드를 호출한 다음 문장인 ❽번으로 제어를 옮긴다.
a.x
a.y
| 10 |
|---|
| 20 | 10 |
|---|
temp
a
❽ a 객체의 속성 x와 y를 출력한다.
10 20 20 10
결과