Coding for KidsCoding for Kids
창의적인 레벨도전 과제교사 가이드
기능 투표
고급 파이썬 개발 과정
챕터
>
레벨

데코레이터
체이닝 데코레이터

목표

데코레이터를 체인으로 연결하여 색깔 있는 깃발들로 지붕을 장식하세요.

오랫동안 그 주방 안에 갇혀 있던 후 지붕에는 신선한 공기가 들어왔지만, 몇몇 줄에는 깃발이 없습니다. 여기 있는 동안 깃발들을 설치하는 것이 좋겠지만, 한 줄을 설치하기 위해서는 다양한 깃발이 필요하기 때문에 까다로울 수 있습니다. 이를 데코레이터를 체인으로 연결함으로써 달성할 수 있습니다.

데코레이터는 @ 기호를 두 번 연속 사용하여 체인됩니다. 즉, 하나의 함수에 여러 데코레이터를 적용할 수 있습니다. 예를 들어, 이를 통해 함수 하나를 두 개의 데코레이터 함수 사이에 끼워 넣을 수 있습니다:

# List to add flags to a line line = [] # Decorator adding a red flag def red_flag(func): def add_flag(): line.append("red") player.speak("Two red flags added to the line") func() line.append("red") return add_flag # Decorator adding a blue flag def blue_flag(func): def add_flag(): line.append("blue") player.speak("Two blue flags added to the line") func() line.append("blue") return add_flag # Decorated Function adding line and middle flag @blue_flag @red_flag def middle_green(): line.append("green") player.speak("A green flag has been added to the line")

위 코드는 체인된 데코레이터가 부착된 함수를 보여주며, 이 데코레이터들은 함수 내부에 꼼꼼히 삽입되어 줄의 양 끝에는 파란 깃발이, 내부에는 빨간 깃발이 배치되고, 마지막으로 중앙에는 녹색 깃발이 배치됩니다. 이 모든 깃발은 line 이라는 리스트에 추가되며, 이것이 줄에 깃발을 설치하는 방법입니다.

황금색 X 표식으로 걸어가서 read() 함수를 사용해 표지판에 적힌 지시사항을 확인하세요. 여기에서는 어떤 위치에 어떤 깃발을 놓아야 하는지 알려줄 것입니다. 깃발은 세 가지 종류로, `

코드북