Ahoj,
klasicky pripad na polymorfismus :). Mam neco, cemu rikam "stream", coz 
je objekt, co umi read(), write(), readline(), flush() a tak. Zbytek 
programu nezajima, jakej konkretni stream pouziva, ale jenom to, ze to 
"je stream". V jinych jazycich bych to resil dedenim od jednoho 
spolecneho potomka, to v pythonu nemusim (duck typing, ze jo).

Nicmene jsem liny clovek a tak nechci u kazde metody v kazde odvozene 
tride znova nastavovat docstring. Udelal jsem to teda takhle:

class Generic:
        def foo(args):
                "bla bla"
                return self._foo(args)

        def bar(a, b, c):
                "bla bla blabla"
                return self._bar(a, b, c)

        def __empty(args)
                raise NotImplementedError

        _foo = __empty
        _bar = __empty

class Normalni(Generic):
        def _foo(args):
                kod()

Cili mam nejakou obalku kolem kazde funkce, kterou potrebuju, a z ni 
teprve volam tu potrebnou. Prijde mi to ale jako celkem prasarna. Na 
druhou stranu, rozhodne nechci u kazde z peti trid "Normalni" porad 
opakovat docstring z Generic...

Real-world kod je na [1].

[1] 
http://svn.flaska.net/viewcvs/*checkout*/trojita/trunk/streams.py?rev=114&content-type=text%2Fplain

Hezky vecer,
-jkt

-- 
cd /local/pub && more beer > /dev/mouth
_______________________________________________
Python mailing list
[email protected]
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem