사용자 도구

사이트 도구


refactoring

문서의 이전 판입니다!


리팩터링

출처

예제 0: 연극 극단의 청구서

다양한 연극을 외주로 받아서 공연하는 극단이 있다고 생각해보자. 공연 요청이 들어오면 연극의 장르와 관객 규모를 기초로 비용을 책정한다. 현대 이 극단은 두 가지 장르, 비극(tragedy)과 희극(comedy)만 공연한다. 그리고 공연료와 별개로 포인트(volume credit)를 지급해서 다음번 의뢰 시 공연료를 할인받을 수도 있다. 일정의 충성도 프로그램인 셈이다.

극단은 공연할 '연극 정보'를 plays.json 파일에 저장한다.

극단은 공연료 '청구서에 필요한 데이터'를 invoices.json 파일에 저장한다.

이 때 공연료 청구서를 출력하는 함수

statement(invoice, plays) -> str

를 Python 으로 작성하시오.

참조 정보

plays.json

{
  "hamlet": {"name": "Hamlet", "type": "tragedy"},
  "as-like": {"name": "As You Like It", "type": "comedy"},
  "othello": {"name": "Othello", "type": "tragedy"}
}

invoices.json

[
  {
    "customer": "BigCo",
    "performances": [
      {
        "playID": "hamlet",
        "audience": 55
      },
      {
        "playID": "as-like",
        "audience": 35
      },
      {
        "playID": "othello",
        "audience": 40
      }
    ]
  }
]

청구서 예시

청구 내역 (고객명: BigCo)
  Hamlet: $650.00 (55석)
  As You Like It: $580.00 (35석)
  Othello: $500.00 (40석)
총액: $1,730.00
적립 포인트: 47점
refactoring.1655354831.txt.gz · 마지막으로 수정됨: 2022/06/16 04:47 저자 hyudblab