# Ex 12 Decorators import datetime #### Step 1, ohne Argumente # Decorator def time_teller(func): def inner_function(): time_list = func() return "It is {date}. Since {hour} hours and {minutes} minutes."\ .format(date=time_list[0], hour=time_list[1], minutes=time_list[2]) return inner_function # Verwendet time um [date, hour, minute] zurück zu geben @time_teller def get_time(): # Returns list now = datetime.datetime.now() return [now.date(), now.hour, now.minute] print(get_time()) #### Step 2: get_time mit Argument def time_teller(func): # Hier nun mit Parameter def inner_function(format_string="%Y/%m/%d %H:%M"): now = func(format_string) return "Now it's {date}".format(date=now) return inner_function # Verwendet time um [date, hour, minute] zurück zu geben @time_teller def get_time(format_string="%Y/%m/%d %H:%M"): # Beispiel 2018/01/08 08:19 now = datetime.datetime.now().strftime(format_string) return now # Ziel: vollen Satz mit Datum und Uhrzeit print(get_time("%Y-%m-%d")) print(get_time("%H:%M.%S"))