Cara paling sederhana untuk membungkus suatu fungsi
func(*args, **kwargs)
... adalah menulis secara manual pembungkus yang akan memanggil func () di dalamnya:
def wrapper(*args, **kwargs):
# do something before
try:
return func(*a, **kwargs)
finally:
# do something after
Dalam fungsi Python adalah sebuah objek, sehingga Anda dapat meneruskan namanya sebagai argumen dari fungsi lain dan mengembalikannya. Anda juga dapat menulis generator pembungkus untuk fungsi anyFunc () :
def wrapperGenerator(anyFunc, *args, **kwargs):
def wrapper(*args, **kwargs):
try:
# do something before
return anyFunc(*args, **kwargs)
finally:
#do something after
return wrapper
Harap perhatikan juga bahwa dalam Python ketika Anda tidak tahu atau tidak ingin menyebutkan semua argumen dari suatu fungsi, Anda bisa merujuk ke beberapa argumen, yang dilambangkan dengan namanya, didahului dengan tanda bintang di tanda kurung setelah nama fungsi:
*args
Misalnya, Anda dapat mendefinisikan fungsi yang akan mengambil sejumlah argumen:
def testFunc(*args):
print args # prints the tuple of arguments
Python menyediakan manipulasi lebih jauh pada argumen fungsi. Anda dapat mengizinkan suatu fungsi untuk mengambil argumen kata kunci. Dalam badan fungsi argumen kata kunci disimpan dalam kamus. Dalam tanda kurung setelah nama fungsi kamus ini dilambangkan dengan dua tanda bintang diikuti oleh nama kamus:
**kwargs
Contoh serupa yang mencetak kamus argumen kata kunci:
def testFunc(**kwargs):
print kwargs # prints the dictionary of keyword arguments