TypeError: 'bool' object is not callable 오류
6722
작성한 질문수 2
코드 진행 중에 오류가 떴습니다.
강의를 보면서 따라했는데 뜨는 이유를 잘 모르겠습니다.
메소드와 변수의 이름이 같을 때 나타난다고 하는데, 잘 모르겠습니다.
답변 1
0
안녕하세요!
질문자님 코드에서 현재 모드를 나타내는 변수는 set_seize_mode 입니다.
(강의에서 같은 역할을 하는 변수는 앞에 set_이 안붙은 seize_mode 입니다.)
또한 시즈모드 on/off 를 해주는 메서드 또한 같은 이름을 가지고 있습니다.
에러메세지는 'bool object는 Callable이 아니다.' 라고 합니다.
'callable이 아니라는데그럼 callable은 무엇일까'
함수처럼 뒤에 괄호를 붙여 호출할 수 있는 형태 라고 생각하시면 됩니다.
143번째 줄의 set_seize_mode의 클래스 정의를 따라 들어가보면
클래스의 인스턴스(값을 가지는 객체 하나하나)가 생성될 때 호출되는
__init__ 메서드에서 set_seize_mode 변수에 False 값을 넣어줬습니다.
이로 인해 클래스에서 만들어준 함수 이름으로 알지 못하고
생성 시 값을 넣어준 bool 타입 변수로 인식하는 것입니다.
코드 흐름상 unit.set_seize_mode() 는 True(), False() 처럼 해석될 것이고,
문법상 bool 타입값을 대상으로 호출 할 수 없다는 에러메세지가 나오는 것입니다.
quiz 8 오류 문제
0
69
1
str() 작성 위치
0
51
1
아나콘다
0
60
1
윈도우 설치 도와주세요
0
74
1
std_weight함수에서weight만return가능한가요?
0
67
1
오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.
0
33
1
설치해서 시작하는데 문제가 있습니다.
0
69
1
함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?
0
103
1
2장 환경설정 문의
0
73
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
193
1
피드백 부탁드립니다
0
93
1





