* Gerhard Häring <gerhard.haering@gmx.de> [2002-09-28 00:07 +0200]: > * Michael Hudson <mwh@python.net> [2002-09-27 16:39 +0100]: > > On Fri, 27 Sep 2002, Gerhard Häring wrote: > > > > > This is somewhat off-topic, but I'm hoping maybe someone can give a hint > > > why this only happens on Python 2.2.1. > > > > Guessing, but the (Jeremy's?) changes I recently backported to > > classobject.c on the release22-maint branch might relate to this. > > Maybe. I've not viewed the control flow in a debugger, but my tries to come up > with a minimalistic test case and my gut feeling says that this piece of code > has something to do with it: > > static PyObject *PgLargeObject_getattr(PgLargeObject *self, char* attr) > { > PyObject *res; > > res = Py_FindMethod(PgLargeObject_methods, (PyObject *)self, attr); > if (res != NULL) > return res; > PyErr_Clear(); > > if (strcmp(attr, "closed") == 0) > return Py_BuildValue("l", (long)(self->lo_fd == -1)); > > if (!strcmp(attr, "__module__")) > return Py_BuildValue("s", MODULE_NAME); > > if (!strcmp(attr, "__class__")) { > printf("__class__ accessed!\n"); > return Py_BuildValue("s", self->ob_type->tp_name); > } > > return PyMember_Get((char *)self, PgLargeObject_members, attr); > } > > from which I can see that isinstance tries to access the __class__ attribute. > Am I supposed to /not/ provide a __class__ attribute for classic types? > > I haven't looked into the python22-maint changelogs yet, but I couldn't find > any related registered SF bug. Ok, I've now further narrowed down this isinstance issue: python22-maint ==> bug does not appear python22-maint with abstract.c from Python 2.2.1 ==> bug appears So for what it's worth (i. e. not much), I'd say please /do/ include the abstract.c changes into the upcoming Python 2.2.2 :-) -- Gerhard
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4