Dobrý večer.
Ve svém programu jsem potřeboval volat jednu z několika tříd, kterou,
to záviselo na volbě uživatele v GUI.
Chtěl bych poprosit o kritiku mého rešení.
Všechny třídy jsem měl po kupě v jednom adresáři, ten jsem si naimportoval.
Do proměnné se uloží název proměnné, podle volby z GUI.
Pomocí getattr se zavolá třída + metoda.
import balicek
choice = button.objectName()
foo = getattr(balicek , str(choice))
print foo().bar()
Vše funguje bez problémů. Ještě před tímto jsem to samé dal do kupy pomocí eval.
print eval("%s().foo()" % choice)
V tomto případě jsem si v __init__.py v adresáři s třídami
naimportoval všechny třídy.
Jaké jsou nevýhody eval() ? Je to celé vůbec košér, prosím o Vaše názory.
Děkuji velice.
--
S pozdravem
Martin Stiborský
Jabber: [EMAIL PROTECTED]
ICQ: 224-065-849
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python