l’elenco delle chiamate di funzione che utilizza la lista di comprensione

posso chiamare un elenco di funzioni e utilizzare elenco di comprensione?

def func1():return 1
def func2():return 2
def func3():return 3

fl = [func1,func2,func3]

fl[0]()
fl[1]()
fl[2]()

So che posso fare di

for f in fl:
   f()

ma posso fare ?

[f() for f in fl]

Una domanda supplementare per le persone gentili, se la mia lista delle funzioni in classe, per esempio

class F:

    def __init__(self):
        self.a, self.b, self.c = 0,0,0

    def func1(self):
        self.a += 1

    def func2(self):
        self.b += 1

    def func3(self):
        self.c += 1

    fl = [func1,func2,func3]

fobj= F()

for f in fobj.fl:
    f()

funziona?

  • Che cos’è che ti impedisce di provare in modalità interattiva?
  • appena avuto un andare, non lavoro, non ho avuto la shell di python quando mi è stato pensare che la questione…
  • docs.python.org/release/3.2/tutorial/…
InformationsquelleAutor Jerry Gao | 2011-03-28

 

4 Replies
  1. 15

    Naturalmente, si può come Fabio Diniz ha detto :),
    Tuttavia, per il metodo di classe quando viene utilizzato come una funzione, un oggetto deve essere dato come argomento:

    fobj= F()
    
    for f in fobj.fl:
        f(fobj)

    L’oggetto deve essere dato come argomento per la funzione, perché quando si guarda la definizione del metodo def funcX(self): il metodo necessita di un argomento “auto

    • Come posso fare se ho bisogno di passare argomenti alle funzioni?

Lascia un commento