def __init__(self)작성할때
177
작성한 질문수 3
self뒤에 다른 변수들이 올때가 있고 안올때가 있는데 어떤 차이가 있는지 모르겠습니다 ㅜㅜ
답변 1
5
안녕하세요! init 메서드는 객체 생성시 호출되어 초기화를 담당합니다.
강의에서 AttackUnit 경우에는 hp, speed 등 여러 정보들이 self 다음에 들어오는데,
Marine, Tank 등은 self 만 오는 이유가 궁금하신 것 같습니다!
실제로 객체를 만들 때도 m1 = Marine( ) 처럼 생성하구요.
Marine 클래스를 정의할 때 이름 옆 괄호 안에
AttackUnit 클래스의 이름이 들어있습니다.
class Marine(AttackUnit):
Marine, Tank같은 특정 유닛은
AttackUnit이라는 공통된 특징을 가진 유닛입니다. 마린, 탱크 등은
hp, speed 와 같은 속성을 모두 공통으로 가지게 됩니다.
따라서 hp, speed 등 공통된 정보를 통해 생성하는 AttackUnit 클래스를 상속받고,
(AttackUnit에는 self 이외에 다른 변수들이 있는 이유)
Marine의 init 메서드는 따로 정보를 입력 받을 필요 없이
(self 말고 다른 변수 없이)
상속받은 AttackUnit 클래스의 init 메서드를 호출하며
정보를 넘겨주어 객체 초기화를 합니다.
Marine의 hp, speed 설정은 모든 Marine들이 같은 값을 가지고,
개별 Marine을 생성할때마다 서로 다른 값을 필요하지 않기 때문입니다.
만약 Marine마다 서로 다른 값, 예를 들어 각각 이름을 붙여줘야한다고 가정한다면,
(marine1, marine2, ...) Marine의 init 메서드에서 따로 입력받아야 할 것입니다.
quiz 8 오류 문제
0
69
1
str() 작성 위치
0
51
1
아나콘다
0
60
1
윈도우 설치 도와주세요
0
73
1
std_weight함수에서weight만return가능한가요?
0
67
1
오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.
0
33
1
설치해서 시작하는데 문제가 있습니다.
0
68
1
함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?
0
103
1
2장 환경설정 문의
0
72
1
스타크래프트 프로젝트
0
74
1
python 파일명.py 입력시 Python 출력
0
133
1
로드맵 질문있습니다!
0
84
2
오류
0
74
1
질문 있습니다.
0
73
1
블로그에 학습한 내용을 정리해도 괜찮을까요?
0
171
1
#퀴즈 3의 5번 질문
0
71
1
print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다
0
80
1
가변인자의 위치가 중요한가요?
0
79
1
vscode옛날 버전 설치
0
220
1
글자색상이 선생님처럼 안나옵니다
0
186
1
슬프네
0
155
1
quiz 6번 관련 문의입니다.
0
129
1
퀴즈#3에 대해서 이렇게 작성해도 되나요?
0
192
1
피드백 부탁드립니다
0
92
1





