Skip to content

Instantly share code, notes, and snippets.

@fajran
Created December 15, 2011 09:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fajran/1480532 to your computer and use it in GitHub Desktop.
Save fajran/1480532 to your computer and use it in GitHub Desktop.
def angka():
return 10
print angka()
def kali_sepuluh(func):
def inner_func():
hasil = func()
return 10 * hasil
return inner_func
@kali_sepuluh
def angka():
return 10
def angka_juga():
return 20
angka_juga_decorated = kali_sepuluh(angka_juga)
print angka()
print angka_juga()
print angka_juga_decorated()
def api(func):
def inner(request):
hasil = func(request)
return HttpResponse(json.dumps(hasil))
return inner
@api
def daftar_angka(request):
hasil = ['satu', 'dua', 'tiga']
return hasil
def int_only(func):
def cek_input(*args):
args_filtered = []
for arg in args:
if type(arg) == int:
args_filtered.append(arg)
return func(*args_filtered)
return cek_input
@int_only
def cetak(*args):
print 'Cetak:'
for arg in args:
print '-', arg
cetak(1, 2, 'tiga', 'empat', 5, 6, object(), None, 'sembilan', 10)
def str_only(func):
def cek_output(*args):
hasil = func(*args)
filtered = []
for item in hasil:
if type(item) == str:
filtered.append(item)
return filtered
return cek_output
@str_only
def apalah():
return ['satu', 2, 3, 'empat', None, 6, 'tujuh']
print apalah()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment