[python] MySQL - nativn� rozhran� pro Python
Filip Štědronský
regnarg na seznam.cz
Pondělí Červen 30 10:03:02 CEST 2008
On Po, čen 30, 2008 at 08:04:02 +0200, zu1234 wrote:
> Mohl by, prosím, někdo začátečníkovi vysvětlit po-lopatě pojem 'wraper'.
Dobrý den,
wrapper je doslava přeloženo "obal", tedy sada funkcí/
tříd/metod/čehokoliv, která zapouzdřuje jinou sadu funkcí
/metod/tříd/čehokoliv, poskytuje k ní jiné rozhraní. Je
běžné, že když se píší moduly pro Python zapouzdřující
existující (Cčkové, nativní, kompilované) knihovny, jako
je GTK, MySQL client library, etc., napíše se v C (pomocí
Python-C API, což je nevyhnutelné, neb není jiný způsob,
jak propojit dynamický svět Pythonu s kompilovaným Cčkovým
okolím jen jednoduchý obal Cčkovských funkcí, často 1:1
mapování C funkcí na Pythonské, protože psát moduly v C
není dvakrát jednoduché.
Ale jakmile je rozhraní knihovny jednou Pythonu
zpřístupněno (byť ve své Cčkové ošklivosti) pomocí tohoto
wrapperu, který obaluje původní funkce určitými rozhraními
potřebnými k tomu, aby je šlo volat z Pythonu, není
problém napsat další, vysokoúrovňový, objektový obal přímo
v Pythonu (to již je snadné), který zapouzdřuje před
uživatelem tyto jednoduché funkce a nabízí konzistentní a
příjemné rozhraní. Taktéž se toho používá pro skrývání
implementačních rozdílů (stejné rozhraní postavené nad
několika různými moduly, např. zmíněné DB API)
Doufám, že to pomůže.
Filip Štědronský
--
regnarg --- http://rg.pretel.cz -- JID: regnarg na jabber.cz
V péči o štěstí druhých nacházíme své vlastní. --Platón
Přátelství může trvat jedině mezi dobrými lidmi. --Cicero
Další informace o konferenci Python