Bir işlevi sarmanın en kolay yolu
func(*args, **kwargs)
... kendi içinde func () diyebilecek bir sarıcı yazmaktır :
def wrapper(*args, **kwargs):
# do something before
try:
return func(*a, **kwargs)
finally:
# do something after
Python işlevinde bir nesnedir, bu yüzden adını başka bir işlevin bağımsız değişkeni olarak iletebilir ve geri verebilirsiniz. Herhangi bir işlev için anyFunc () için bir sarıcı oluşturucu da yazabilirsiniz :
def wrapperGenerator(anyFunc, *args, **kwargs):
def wrapper(*args, **kwargs):
try:
# do something before
return anyFunc(*args, **kwargs)
finally:
#do something after
return wrapper
Ayrıca, bir işlevin tüm argümanlarını bilmediğinizde veya adlandırmak istemediğinizde Python'da, adından sonra gelen parantezlerde yıldız işareti bulunan bir dizi argümana başvurabileceğinizi lütfen unutmayın. işlev adı:
*args
Örneğin, herhangi bir sayıda bağımsız değişken alacak bir işlev tanımlayabilirsiniz:
def testFunc(*args):
print args # prints the tuple of arguments
Python, işlev argümanlarında daha fazla manipülasyon sağlar. Bir işlevin anahtar kelime bağımsız değişkenleri almasına izin verebilirsiniz. İşlev gövdesi içinde, anahtar kelime bağımsız değişkenleri sözlükte tutulur. İşlev adından sonraki parantezlerde bu sözlük iki yıldız ve ardından sözlüğün adı ile gösterilir:
**kwargs
Anahtar kelime bağımsız değişkenleri sözlüğünü yazan benzer bir örnek:
def testFunc(**kwargs):
print kwargs # prints the dictionary of keyword arguments