Slide 62
Slide 62 text
everyday
superpowers
async def compute_price(
type: str, age: int = AGE_MISSING, date: datetime.date = DATE_MISSING
) -> int:
if type == 'night':
return await NightTicket(age).price
return await NormalTicket(age, date).price
class Ticket:
ticket_kind = ''
async def get_base_price(self):
return await get_base_price_for(self.ticket_kind)
class NightTicket(Ticket):
ticket_kind = 'night'
def __init__(self, age: int = AGE_MISSING, date: datetime = DATE_MISSING):
self.age = age
@property
async def price(self):
if self.age <= 6:
return 0
if self.age > 64:
return math.ceil(await self.get_base_price() * .4)
return await self.get_base_price()