[Python] 11-3장 객체 응용(Ball 클래스, TV 클래스 생성 등)

- Ball 클래스(터틀 그래픽)

from turtle import *

class Ball(Turtle):
    def __init__(self, color, speed, size):
        self.turtle = Turtle()
        self.turtle.shape("circle")
        
        self.x = 0
        self.y = 0
        
        self.color = color
        self.turtle.color(color, color)
        
        self.xspeed = speed
        self.yspeed = speed
        
        self.size = size
        
    def move(self):
        self.x += self.xspeed
        self.y += self.yspeed
        self.turtle.goto(self.x, self.y)
        
ball = Ball("red", 1, 2)
for i in range(100):
    ball.move()

 

 

- CIrcle 클래스

class Circle():
    def __init__(self, radius):
        self.radius = radius
        
    def calcPerimeter(self):
        self.perimeter = 2 * self.radius * 3.141592
        
    def calcArea(self):
        self.area = self.radius * self.radius * 3.141592
        
    def __str__(self):
        msg = "반지름: "+str(self.radius)+" 원의 면적: "+str(self.area)+" 원의 둘레: "+str(self.perimeter)
        return msg
    
circle = Circle(100)
circle.calcPerimeter()
circle.calcArea()
print(circle)

 

 

- TV 클래스

class TV():
    def __init__(self):
        self.channel = 10
        self.volume = 5
        self.on = True
        
    def turnOn(self):
        self.on = True
    
    def turnOff(self):
        self.on = False
        
    def setChannel(self, channel):
        self.channel = channel
        
    def setVolume(self, volume):
        self.volume = volume
        
    def __str__(self):
        return "TV의 채널: "+str(self.channel)+" TV의 음량: "+str(self.volume)
    
tv = TV()
print(tv)
tv.setChannel(11)
tv.setVolume(6)
print(tv)

 

 

- 2개의 거북이 객체 생성(터틀 그래픽)

from turtle import *

round = Turtle()
myTurtle = Turtle()

round.shape("circle")
myTurtle.shape("turtle")

def move(obj):
    obj.fd(100)
    obj.rt(90)
    obj.fd(30)
    obj.lt(90)
    obj.fd(100)
    
round.lt(180)
move(round)
move(myTurtle)

 

 

- Turtle 상속 받아서 사각형 그리기(터틀 그래픽)

from turtle import *

class MyTurtle(Turtle):
    def drawSquare(self):
        for i in range(4):
            self.rt(90)
            self.fd(100)
            
my_turtle = MyTurtle()
my_turtle.fd(100)
my_turtle.drawSquare()

 

 

※ 두근두근 파이썬 13장 연습문제 참조