Ray.Allen <ysj....@gmail.com> added the comment:

This patch makes the AttributeError message generated from getting attributes 
from module object more helpful, that is, print the module name. Now the error 
message is:
  module object 'mod_name' has no attribute 'xxx'
Instead of:
  'module' object has no attribute 'xxx'

In this patch, I add a function PyObject_GenericFindAttr(), which is almost the 
same as PyObject_GenericGetAttr(), except that return NULL instead of setting 
the exception, and make PyObject_GenericGetAttr() call this function and 
setting exception in the case of NULL return value. Through this, each type can 
custom its own AttributeError message, while using the uniform process of 
getting the attribute in PyObject_GenericFindAttr(). For example, 
PyModuleType's tp_getattro is set to a new function PyModule_GetAttr(), which 
calls the PyObject_GenericFindAttr() can set the customed AttributeError 
message.

Besides, I think the super object's AttributeError message should also be 
improved, but I didn't include that in the patch. I don't know weather it is 
suitable.

----------
keywords: +patch
Added file: http://bugs.python.org/file16780/issue_8297.diff

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue8297>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to