만약 전달값을 3개가 아닌 1개 또는 2개만 넘기면 어떻게 될까요?
soldier3 = Unit("보병") # 전달값 3개 중 1개만 넘김
실행결과 |
TypeError: __init__() missing 2 required positional arguments: 'hp' and 'damage' |
전달값을 1개만 넘기니 오류가 발생하고 오류 메시지로 hp와 damage에 해당하는 전달값 2개가 없다고 나오네요.
이번에는 전달값을 2개만 넘겨 보겠습니다.
soldier3 = Unit("보병", 40) # 전달값 3개 중 2개만 넘김
실행결과 |
TypeError: __init__() missing 1 required positional argument: 'damage' |
역시나 같은 오류가 발생하고 damage에 해당하는 전달값 1개가 없다고 메시지가 나옵니다. 이와 같이 객체를 생성할 때는 self를 제외하고 __init__() 생성자에 정의한 개수만큼 전달값을 넘겨 줘야 합니다. 만약 클래스에 따로 생성자를 정의하지 않았다면 전달값 없이 클래스명만으로 객체를 생성하면 됩니다.
형식
변수명 = 클래스명()