Re: [Pyobjc-dev] How do you write category code?
Brought to you by:
ronaldoussoren
From: Ronald O. <ron...@ma...> - 2004-07-28 19:28:41
|
On 28-jul-04, at 20:26, b.bum wrote: > On Jul 28, 2004, at 11:16 AM, Bob Ippolito wrote: >> On Jul 28, 2004, at 2:08 PM, Fortepianissimo wrote: >>> Ok another newbie question: how do I write category code using >>> PyObjC? >>> Searched documentation but didn't find anything... >> >> Painfully, with objc.classAddMethods(...). I'd suggest not doing it >> at all unless you absolutely have to, until we have a better syntax >> for it (a metaclass mixin or something). > > How about something like the following. I like the second one better. > > class NSObject(PyObjCAsCategory): > pass > > Or: > > class MyCategory(ObjCCategory, NSObject): > pass class MyCategory (objc.category, NSObject): pass I don't really like this syntax, the decorator syntax would be better (when they ever get around choosing and implementing one...) but that would have the wrong semantics: [ objc.category ] class MyCategory (NSObject): pass or @objc.category class MyCategory (NSObject): pass BTW. If anyone wants to have a decorator a lot: Phillip J. Eby has written an implementation of the first syntax in pure python, it seems to be part of PEAK. > > --- > > objc.classAddMethods() serves a different purpose than categories. classAddMethods is as close to categories as we get :-). It's more powerful than objective-C categories, but that can't be helped. Ronald -- X|support bv http://www.xsupport.nl/ T: +31 610271479 F: +31 204416173 |