Portál AbcLinuxu, 19. dubna 2024 02:42


Dotaz: Python - jak zavolat funkci uloženou v seznamu

2.9.2015 18:43 Lamer
Python - jak zavolat funkci uloženou v seznamu
Přečteno: 358×
Odpovědět | Admin
Ahoj, poradí mi prosím někdo, jak můžu zavolat funkci uloženou v seznamu ? Předem děkuji.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 3× (pulpe, rADOn, Vojtěch Trefný)
xxxxxx avatar 2.9.2015 19:39 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Python - jak zavolat funkci uloženou v seznamu
Odpovědět | | Sbalit | Link | Blokovat | Admin
def nejaka_fce():
    return 'Hello, World!'

seznam = [nejaka_fce]

print(seznam[0]())  # Vypíše Hello, World!
3.9.2015 20:38 Lamer
Rozbalit Rozbalit vše Re: Python - jak zavolat funkci uloženou v seznamu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vážně nikdo neví nebo to ani nejde ?
xxxxxx avatar 4.9.2015 12:10 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Python - jak zavolat funkci uloženou v seznamu
Přečti si moji odpověď výše, už je několikrát označená jako řešení. Jestli tomu nerozumíš, tak řekni čemu, pokusím se vysvětlit.
4.9.2015 13:45 KIA
Rozbalit Rozbalit vše Re: Python - jak zavolat funkci uloženou v seznamu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jednoduše takhle..
myList['fnName0', 'fnName1', 'fnName2']     # Seznam funkcí
myFunction = globals()[myList['fnName'][0]] # Získá název funkce fnName0
myFunction(param1, param2)                  # Zavolá funkci fnName0(param1, param2)
xxxxxx avatar 4.9.2015 15:55 xxxxxx | skóre: 23
Rozbalit Rozbalit vše Re: Python - jak zavolat funkci uloženou v seznamu
Tohle fungovat nebude.
>>> myList['fnName0', 'fnName1', 'fnName2']
NameError: name 'myList' is not defined

Oprava: myList['fnName0', 'fnName1', 'fnName2'] -> myList = ['fnName0', 'fnName1', 'fnName2']

>>> myList['fnName'][0]
TypeError: list indices must be integers, not str
Navíc, proč do toho tahat globals? Mít dict -> list -> fce namísto list -> fce?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.