TIL(15일차)

김규현·2022년 9월 21일
0

📚 Class 복습

📌아래의 코드를 실행했을 때 x, y, z의 인자 값을 init 함수에서 받아 name, age, hobby를 정의한 다음
talk 메소드에서 인스턴스로 생성이 된다.

class Person:
    def talk(self):
        print("안녕하세요 저는" + self.name + "입니다.")
        print("제 나이는" + self.age + "입니다.")
        print("제 취미는" + self.hobby + "입니다.")
        print()

    def __init__(self, name, age, hobby):
        print("이닛 함수 실행중")
        self.name = name
        self.age = age
        self.hobby = hobby


x = Person("권기현", "20", "피아노")
y = Person("오형석", "20", "기타")
z = Person("정형빈", "20", "캐스터넷츠")

x.talk()
y.talk()
z.talk()

✏️ Class 복습 과제

class Circle:
    pi = 3.14

    def __init__(self, radius):
        self.radius = radius
        self.area = radius * radius * self.pi

    def getCircumference(self):
        return self.radius * self.pi * 2


c = Circle(5)

print("반지름은 : ", c.radius)
print("넓이는 : ", c.area)
print("둘레는 : ", c.getCircumference())


# getArea라는 메소드를 클래스 안에서 만들고, 6번줄은 지워주세요
# 6번줄의 기능을 getArea라는 메소드에서 할수있게끔 로직을 만들어주시고
# 15번줄도 수정해서 getArea라는 메소드를 통해서 넓이를 print 할 수 있게 수정해주세요!

1. 우선 6번줄을 지우고 넓이를 구하는 메소드 def getArea(self)를 입력한다.

  • init 함수에서 사용된 radius를 가져오기 위해서는 self를 사용하여야 한다.

2. getArea 메소드에 넓이 구하는 공식인 self.radius x self.radius x self.pi를 return한다.

  • 메소드의 인자로 self를 넣어주는 것은 클래스 내 전역 변수로 사용되기 때문에 첫 번째 인자로 넣어주어야 한다.

3. 15번 줄의 print에서 c.area를 c.getArea()로 수정해준다.

  • 기존 init 함수에서 호출되던 기능을 메소드로 만들었기 때문에 c.메소드명()으로 입력해준다.

🚀완성코드🚀

class Circle:
    pi = 3.14

    def __init__(self, radius):
        self.radius = radius
    
    def getArea(self):
        return self.radius * self.radius * self.pi

    def getCircumference(self):
        return self.radius * self.pi * 2


c = Circle(5)

print("반지름은 : ", c.radius)
print('넓이는 : ', c.getArea())
print("둘레는 : ", c.getCircumference())
profile
웹개발 회고록

0개의 댓글