Jp Calderone <[EMAIL PROTECTED]> writes: > On Tue, 30 Nov 2004 22:39:15 +1000, Nick Coghlan <[EMAIL PROTECTED]> wrote: >>Craig Ringer wrote: >> > Hi folks >> > >> > I've been doing some looking around, but have been unable to find out >> > how to implement class methods on Python objects written in C. "Why are >> > you using C?" you ask? >> > >> > Yeah, so do I. However, I need to provide bindings for an application >> > that Python is embedded into, and thanks to Qt the bindings are going to >> > be both simple and quite powerful. However, I need a way to do class >> > methods... >> > >> > If anybody has any tips on this, It'd be much appreciated. >> >> You probably want to look at staticmethod(). (classmethod() is >> slightly different, and probably not what you want. In fact, >> classmethod() is practically *never* what you want. Guido wrote it >> himself, and even he ended up not using it)
> > Funny, I find the exact opposite to be the case... ;) Static > > methods are glorified free functions, but class methods > > participate usefully in inheritence hierarchies - why would anyone > > want the former? Same for me. To answer the original question: To create class methods in C code, you use the METH_CLASS flag in the PyMethodDef structure. Supported in Python 2.3 and above, in 2.2 it is more complicated. If needed, I can post a snippet for 2.2 as well. Thomas -- http://mail.python.org/mailman/listinfo/python-list