[Python-Dev] new property factory arguments
M.-A. Lemburg
mal@lemburg.com
Mon, 18 Feb 2002 12:17:17 +0100
john coppola wrote:
>
> Hello python developers. After discussions with Fred
> about defining how property objects are created, I
> decided to give it a whirl myself. After about minute
> of piddling, I came up with something I thought would
> be a hack but is quite interesting.
> ...
> ! property_init(PyObject *self, PyObject *args, PyObject *kwds)
> {
> ! PyObject *get = NULL, *set = NULL, *del = NULL, *doc = NULL;
> ! static char *kwlist[] = {"fget", "fset", "fdel", "doc", 0};
> ! propertyobject *gs = (propertyobject *)self;
> !
> ! if (!PyArg_ParseTupleAndKeywords(args, kwds, "|OOOO:property",
> ! kwlist, &get, &set, &del, &doc))
> ! return -1;
> ...
> --- 1003,1023 ----
> }
>
> static int
> ! property_init(PyObject *self, PyObject *args, PyObject *kw)
> {
> ! PyObject *get=NULL, *set=NULL, *del=NULL, *doc=NULL, *arg=NULL;
> ! static char *kwlist[] = {"object", 0};
> ! propertyobject *gs = (propertyobject *)self;
> ! if (!PyArg_ParseTupleAndKeywords(args,kw,"|O:property",kwlist,&arg))
> ! return -1;
> !
> ! get = PyObject_GetAttrString(arg,"__get__");
> ! set = PyObject_GetAttrString(arg,"__set__");
> ! del = PyObject_GetAttrString(arg,"__del__");
> ! doc = PyObject_GetAttrString(arg,"__doc__");
Wouldn't this break the documented API ?
If so, I'd suggest to provide a second constructor which
exposes the new signature instead. Should be easy to
do in Python...
--
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.egenix.com/files/python/