Message3205
As noted by Phillipe, the problem is on *Derived __findattr__:
public PyObject __findattr__(String name) {
PyType self_type=getType();
PyObject getattribute=self_type.lookup("__getattribute__");
PyString py_name=null;
try {
if (getattribute!=null) {
return
getattribute.__get__(this,self_type).__call__(py_name=PyString.fromInterned(name));
} else {
return super.__findattr__(name);
}
} catch (PyException e) {
if (Py.matchException(e,Py.AttributeError)) {
PyObject getattr=self_type.lookup("__getattr__");
if (getattr!=null)
try {
return
getattr.__get__(this,self_type).__call__(py_name!=null?py_name:PyString.fromInterned(name));
} catch (PyException e1) {
if (!Py.matchException(e1,Py.AttributeError))
throw e1;
}
return null;
}
throw e;
}
}
The last "return null" is translating all the AttributeErrors into a
nulll return value, which is right from the perspective of the API
offered by PyObject#__findattr__, but causes this problem.
I would like to override PyObject#__getattr__ on *Derived (just as I
overrided __getitem__ on #1038), but it is marked final on PyObject. Why? |
|
Date |
User |
Action |
Args |
2008-05-25 21:08:05 | leosoto | set | spambayes_score: 0.0988609 -> 0.098860875 messageid: <1211749685.43.0.999852496524.issue1041@psf.upfronthosting.co.za> |
2008-05-25 21:08:05 | leosoto | set | spambayes_score: 0.0988609 -> 0.0988609 recipients:
+ leosoto |
2008-05-25 21:08:04 | leosoto | link | issue1041 messages |
2008-05-25 21:08:04 | leosoto | create | |
|