Jak spustit příkaz uložený v poli

MarkyMark

Jak spustit příkaz uložený v poli
« kdy: 18. 08. 2015, 23:06:16 »
Dobry den. Narazil jsem na potíže v pythonu a nemůžu nikde najít nějaké řešení. Mám pole a v poli jsou příkazy s parametry, příklad:
Kód: [Vybrat]
arr = ['delete_file(path, name)'] Když ale zadám arr[0], tak se příkaz nespustí. Pomůže mi prosím někdo zkušený ? Děkuji.


TiB

Re:Jak spustit příkaz uložený v poli
« Odpověď #1 kdy: 18. 08. 2015, 23:13:29 »
Nejsem si jisty, ze te otazce uplne rozumim.  ;)

MarkyMark

Re:Jak spustit příkaz uložený v poli
« Odpověď #2 kdy: 18. 08. 2015, 23:19:36 »
Mám funkci
Kód: [Vybrat]
def delete_file(path, name):
   pass

pak mám seznam
Kód: [Vybrat]
myList = ['delete_file('/home', 'test.txt')']
no a potřebuji spustit funkci jež je v tom seznamu včetně parametrů
Kód: [Vybrat]
myList[0]
Je to lépe k pochopení ?

TiB

Re:Jak spustit příkaz uložený v poli
« Odpověď #3 kdy: 18. 08. 2015, 23:25:57 »
Mám funkci
Kód: [Vybrat]
def delete_file(path, name):
   pass

pak mám seznam
Kód: [Vybrat]
myList = ['delete_file('/home', 'test.txt')']
no a potřebuji spustit funkci jež je v tom seznamu včetně parametrů
Kód: [Vybrat]
myList[0]
Je to lépe k pochopení ?


To bych imho udelal krapet jinak. Proc to mit jako retezec. Neco ve smyslu.
import functools

myList = [functools.partial(delete_file, '/home', 'test.txt')]
myList[0]

Pokud to chces mit vylozene jako retezec, tak pak eval. To je ale celkem nehezke a myslim zbytecne.


TiB

Re:Jak spustit příkaz uložený v poli
« Odpověď #4 kdy: 18. 08. 2015, 23:27:45 »
Tedy exec jsem chtel napsat. Ale to bych stejne v tomhle pripade nedelal.  ;)


ByCzech

Re:Jak spustit příkaz uložený v poli
« Odpověď #5 kdy: 18. 08. 2015, 23:35:44 »
Dobry den. Narazil jsem na potíže v pythonu a nemůžu nikde najít nějaké řešení. Mám pole a v poli jsou příkazy s parametry, příklad:
Kód: [Vybrat]
arr = ['delete_file(path, name)'] Když ale zadám arr[0], tak se příkaz nespustí. Pomůže mi prosím někdo zkušený ? Děkuji.

Proč by se taky měl spouštět, že? Když to má vrátit hodnotu z toho indexu ;)... (btw. Python pole nemá ;) )

eval(myList[0])

Ale jak už tady padlo, je to nehezká technika, kterou bych nedoporučil, pokud k tomu není extra důvod. A z toho co vidím, k tomu důvod není.