파이썬/파이썬(python) 중급

[16-4 파이썬] 객체의 속성과 메소드 호출하기

Olivia-BlackCherry 2022. 8. 24. 12:52

 

오늘은 클래스로 객체를 만들고, 

해당 속성(attribute)과 메소드(method)에 접근하는(=호출하는) 방법을 실습하겠다.

 

먼저 클래스, 속성, 메소드에 대한 개념을 정확히 알고 싶다면 아래의 게시글을 확인하기를 바란다.

https://olivia-blackcherry.tistory.com/102

 

[16-3 파이썬] 클래스(Class)

지난 시간 객체를 이루는 2가지 요소인 '속성'과 '메소드'에 대해 이야기했다. https://olivia-blackcherry.tistory.com/101 [16-2 파이썬] 객체를 구성하는 속성, 메서드(attribute, method) 지난 시간 객체지향..

olivia-blackcherry.tistory.com

 

 

오늘 순서는 아래와 같다.

1. 클래스로 객체를 만들고,
2. 해당 속성과
3. 메소드에 접근하는 방법을 배워보겠다.
4. 여러 메소드로 실습해보겠다.

 

실습을 위해

파이썬 내장 모듈인 터틀을 사용한다.

터틀은 거북이다. 

거북이는 느릿느릿 움직이며 흔적을 남기지 않지만..

 

이 모듈에서 터틀은

거북이 모양을 한 색연필이라고 생각하면 된다. 

 

거북이가 돌아다니면서 그 자리에 줄을 긋는다.

나는 

거북이를  원하는 만큼 이동시켜

줄을 그을 수 있다.

거북이를 꾸밀 수도 있고, 

줄의 색깔을 바꿀 수도 있다. 

줄로 다양한 모양을 만드는 것도 재미있는 도전 과제가 될 것이다.

 

 

본격적으로,

객체와 메서드를 호출하는 방법을

공부하기 위해 

 

오늘은

Replit을 이용하겠다.

프로그램을 설치할 필요 없이 

브라우저에서 바로 사용 가능하다.

https://replit.com/

 

The collaborative browser based IDE

Run code live in your browser. Write and run code in 50+ languages online with Replit, a powerful IDE, compiler, & interpreter.

replit.com

 

 

1. 객체 생성하기

우선 터틀 파일에서 클래스를 살펴보자.

실제 turtle 파일에서 확인한 클래스들이다.

_tg_classes = ['ScrolledCanvas', 'TurtleScreen', 'Screen',
               'RawTurtle', 'Turtle', 'RawPen', 'Pen', 'Shape', 'Vec2D']

 

이 중에서 Turtle 클래스로 ninja라는 새로운 객체를 생성해보자.

import turtle
ninja = turtle.Turtle()

또는

from turtle import Turtle
ninja = Turtle()

이렇게 두 가지 방법으로 생성할 수 있다.

 

실행하면 아래와 같은 화면이 나온다.

 

 

2. 속성 접근하기

from turtle import Screen
ninja_screen = Screen()

turtle 모듈의 Screen 클래스를 바탕으로 

ninja_screen 객체를 만든다.

ninja.canvwidth

 canvwidth 속성에 접근하겠다.

객체와 속성을 구분하기 위해  점 ( . )을 찍는다.

print(ninja.canvwidth)

객체에서 해당 속성을 출력한다.

 

 

(빨강)객체에서 속성에 접근하면 높이가 300인 화면이 띄워진다.

(파랑)print 하면 속성 값이 300이 나온다.

 

 

 

3. 메소드 접근하기

이번에는 메소드에 접근하자. 

메소드는 특정 객체에서 함수 기능을 하는 것이다.

 

 

[예시 1]

exitonclick() 메서드

클릭하면 exit 화면을 빠져나간다는 뜻이다. 

즉 화면이 없어진다.

 

ninja_screen.exitonclick()

ninja_screen 객체에서 exitonclick() 함수를 부른다.

객체와 메서드를 구분하기 위해  점 ( . )을 찍는다.

 

 

 

 

[예시 2]

shape 메서드는 포인터를 화살표에서 다른 모양으로 바꿔준다.

아래처럼 turtle이라고 쓰면 거북이 모양이 된다.

ninja.shape("turtle")

 

 

[예시 3]

color 메서드를 이용해 거북이 색깔을 바꿔보자.

ninja.color("orange")

 

 

[예시4]

forward 메서드로 거북이를 200만큼이동시켜보자.

ninja.forward(200)

 

 

다른 메서드도 많다. 

관련 정보는 

터틀 그래픽에 관한 공식 문서에서 찾으면 된다.

터틀 그래픽 공식 문서 내용 중 일부

https://docs.python.org/ko/3/library/turtle.html

 

turtle — 터틀 그래픽 — Python 3.10.6 문서

turtle — 터틀 그래픽 소스 코드: Lib/turtle.py 소개 터틀(거북이) 그래픽은 아이들에게 프로그래밍을 소개하는 데 널리 사용되는 방법입니다. 1967년 Wally Feurzeig, Seymour Papert 및 Cynthia Solomon이 개발한

docs.python.org