Last active
October 9, 2020 22:14
-
-
Save naufalafif/9aedc184f1caf24fb482065005feddeb to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def memoize(func): | |
""" function ini menerima function lain sebagai argument & menyimpan hasil dari function tersebut""" | |
memory = {} # variable yang menyimpan hasil dari eksekusi function | |
def wrapper(*args, **kwargs): | |
# menyimpan arguments sebagai key dari memory | |
key = (args,tuple(kwargs)) | |
# jika pemanggilan function serupa ada dimemory maka return hasil dari memory | |
if key in memory.keys(): | |
return memory[key] | |
# memanggil function sebenarnya | |
result = func(*args, **kwargs) | |
# menyimpan hasil dari eksekusi function | |
memory[key] = result | |
return result | |
return wrapper |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment