오늘은 클래스로 객체를 만들고,
해당 속성(attribute)과 메소드(method)에 접근하는(=호출하는) 방법을 실습하겠다.
먼저 클래스, 속성, 메소드에 대한 개념을 정확히 알고 싶다면 아래의 게시글을 확인하기를 바란다.
https://olivia-blackcherry.tistory.com/102
오늘 순서는 아래와 같다.
1. 클래스로 객체를 만들고,
2. 해당 속성과
3. 메소드에 접근하는 방법을 배워보겠다.
4. 여러 메소드로 실습해보겠다.
실습을 위해
파이썬 내장 모듈인 터틀을 사용한다.
터틀은 거북이다.
거북이는 느릿느릿 움직이며 흔적을 남기지 않지만..
이 모듈에서 터틀은
거북이 모양을 한 색연필이라고 생각하면 된다.
거북이가 돌아다니면서 그 자리에 줄을 긋는다.
나는
거북이를 원하는 만큼 이동시켜
줄을 그을 수 있다.
거북이를 꾸밀 수도 있고,
줄의 색깔을 바꿀 수도 있다.
줄로 다양한 모양을 만드는 것도 재미있는 도전 과제가 될 것이다.
본격적으로,
객체와 메서드를 호출하는 방법을
공부하기 위해
오늘은
Replit을 이용하겠다.
프로그램을 설치할 필요 없이
브라우저에서 바로 사용 가능하다.
1. 객체 생성하기
우선 터틀 파일에서 클래스를 살펴보자.
_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
'파이썬 > 파이썬(python) 중급' 카테고리의 다른 글
[16-6 파이썬] 패키지 package 이용하기, 패키지 속성, 메소드 (0) | 2022.08.24 |
---|---|
[16-5 파이썬] 패키지 설치하기 (0) | 2022.08.24 |
[16-3 파이썬] 클래스(Class) (0) | 2022.08.23 |
[16-2 파이썬] 객체를 구성하는 속성, 메서드(attribute, method) (1) | 2022.08.23 |
[16-1 파이썬] 객체지향 프로그래밍(OOP) vs 객체지향 프로그래밍 (1) | 2022.08.23 |