SORU
3 Mayıs 2009, Pazar


Bağımsız değişken bir işlev listesinde python arayın

Python başka bir işlev içinde bir işlev çağrısı için çalışıyorum, ama doğru sözdizimi bulamıyorum. Yapmak istediğim şey ise şudur:

def wrapper(func, args):
    func(args)

def func1(x):
    print(x)

def func2(x, y, z):
    return x y z

wrapper(func1, [x])
wrapper(func2, [x, y, z])

Bu durumda İlk Çağrı, ikinci olmayacak. Değiştirmek istediğim bir sarıcı işlevi ve çağrılan fonksiyonlar değil.

CEVAP
3 Mayıs 2009, Pazar


Diğer cevapları üzerinde biraz genişletmek için:

Satır:

def wrapper(func, *args):

* args anlamı yanında "parametreleri verilen dinlenme ve listesi args denilen koyun".

Satır:

    func(*args)

* args yanıbaşında, "bu liste besten adlı çekmek 'açmak' parametreleri geri kalanı içine. anlamına gelir

Aşağıdakileri yapabilirsiniz:

def wrapper1(func, *args): # with star
    func(*args)

def wrapper2(func, args): # without star
    func(*args)

def func2(x, y, z):
    print x y z

wrapper1(func2, 1, 2, 3)
wrapper2(func2, [1, 2, 3])

wrapper2, listede açıkça geçti, ama her iki ambalajlarda args liste [1,2,3] içerir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DanceOn

    DanceOn

    6 Mayıs 2006
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011
  • TomSka

    TomSka

    30 Mayıs 2006