[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