클래스 변수는 클래스명과 함께 어디서든 사용할 수 있습니다. Tank.siege_developed라고 하면 Tank 클래스의 클래스 변수에 직접 접근해 시지 모드가 개발됐는지를 확인할 수 있습니다. 또한, 인스턴스 변수가 객체마다 각각 다른 값을 가진다면, 클래스 변수는 모든 객체가 동일한 값을 가진다는 점이 다릅니다.
정리하면 인스턴스 변수는 클래스의 메서드에 정의하거나 객체를 통해 직접 정의하며, 객체마다 서로 다른 값을 가질 수 있습니다. 반면에 클래스 변수는 클래스명 바로 밑에 정의하고 클래스로부터 만들어진 모든 객체에 값이 일괄 적용됩니다.
다음으로 시지 모드와 일반 모드를 전환하기 위한 set_siege_mode() 메서드를 정의합니다.
➊ set_siege_mode() 메서드가 호출되면 현재 시지 모드가 개발됐는지를 먼저 확인합니다. 시지 모드가 개발되지 않았으면 호출한 곳으로 바로 되돌아갑니다.
➋ 시지 모드가 개발된 상태라면 탱크 객체의 시지 모드 설정 여부를 확인합니다.
➌ 현재 일반 모드이면 시지 모드로 전환하고 공격력을 증가시키는 문구를 출력합니다.
➍ 시지 모드이면 일반 모드로 전환하고 공격력을 감소시키고 필요한 문구를 출력합니다.