__init__메서드에 관한 질문
조회수 298회
#1 첫번째 방법
class Triangle(object):
def area(self, b, h):
self.b = b
self.h = h
return b*h/2
a = Triangle()
a.area(4,8)
위의 코드를 init메서드를 이용하여 새로 적어보고자 시도하였습니다.
#2 두번째 방법 시도
class Triangle(object):
def __init__(self, value_v, value_h):
b = value_h
h = value_v
def area(self,b,h):
return b*h / 2
a=Triangle()
a.area(4,8)
하지만 다음과 같은 오류 내용을 받았습니다.
8 def area(self,b,h):
9 return b*h / 2
---> 10 a=Triangle()
11 a.area(4,8)
TypeError: __init__() missing 2 required positional arguments: 'value_v' and 'value_h'
.#2코드에서
a=Triangle( )
을 없애면 잘 돌아갑니다.
질문 1
.#1과 달리 .#2에선 Triangle( )을 없애면 잘 돌아가는 이유가 뭔지 궁금합니다.
질문2
class Triangle(object ):
에서class Triangle :
로 괄호를 없애도 똑같이 돌아가던데 괄호를 넣는 이유가 뭔지 궁금합니다.
답변해주시면 감사하겠습니다
좋은 하루 보내세요!
댓글 입력