From: SourceForge.net <no...@so...> - 2006-06-06 23:29:08
|
Bugs item #1501932, was opened at 2006-06-06 16:29 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jeff Norton (jeffnorton) Assigned to: Nobody/Anonymous (nobody) Summary: hasattr invokes __getattr__ Initial Comment: In CPython hasattr(obj, "foo") does not invoke obj.__getattr__ even if "foo" not in obj.__dict__. In Jython it does. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 |
From: SourceForge.net <no...@so...> - 2006-06-08 20:36:05
|
Bugs item #1501932, was opened at 2006-06-06 18:29 Message generated for change (Comment added) made by juneau001 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jeff Norton (jeffnorton) Assigned to: Nobody/Anonymous (nobody) Summary: hasattr invokes __getattr__ Initial Comment: In CPython hasattr(obj, "foo") does not invoke obj.__getattr__ even if "foo" not in obj.__dict__. In Jython it does. ---------------------------------------------------------------------- Comment By: Juneau001 (juneau001) Date: 2006-06-08 15:35 Message: Logged In: YES user_id=1536464 It looks to me like both hasattr and __getattr__ actually invoke __findattr__. I think hasattr may need to be reworked so that it does not use __findattr__. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 |
From: SourceForge.net <no...@so...> - 2006-12-20 19:06:13
|
Bugs item #1501932, was opened at 2006-06-06 23:29 Message generated for change (Comment added) made by leouserz You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Jeff Norton (jeffnorton) Assigned to: Nobody/Anonymous (nobody) Summary: hasattr invokes __getattr__ Initial Comment: In CPython hasattr(obj, "foo") does not invoke obj.__getattr__ even if "foo" not in obj.__dict__. In Jython it does. ---------------------------------------------------------------------- Comment By: leouser (leouserz) Date: 2006-12-20 19:06 Message: Logged In: YES user_id=1277399 Originator: NO Im trying to figure out the bug here. From: http://docs.python.org/lib/built-in-funcs.html "hasattr( object, name) The arguments are an object and a string. The result is True if the string is the name of one of the object's attributes, False if not. (This is implemented by calling getattr(object, name) and seeing whether it raises an exception or not.)" Running this code: >>> class x: ... def __getattr__(self, name): ... print name and invoking z = x() hasattr(z, "something") produces the same effect on Python as well as Jython. Im working with a Jython3005. leouser ---------------------------------------------------------------------- Comment By: Juneau001 (juneau001) Date: 2006-06-08 20:35 Message: Logged In: YES user_id=1536464 It looks to me like both hasattr and __getattr__ actually invoke __findattr__. I think hasattr may need to be reworked so that it does not use __findattr__. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-08-31 05:58:24
|
Bugs item #1501932, was opened at 2006-06-07 03:29 Message generated for change (Comment added) made by ayeshaiqbal You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Core Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Jeff Norton (jeffnorton) Assigned to: Nobody/Anonymous (nobody) Summary: hasattr invokes __getattr__ Initial Comment: In CPython hasattr(obj, "foo") does not invoke obj.__getattr__ even if "foo" not in obj.__dict__. In Jython it does. ---------------------------------------------------------------------- Comment By: ayesha (ayeshaiqbal) Date: 2007-08-31 09:58 Message: Logged In: YES user_id=1856489 Originator: NO leouser's code sample indeed shows that jython and python behave identically with respect to the issue of hasattr invoking getattr protocol.Not sure whether this is a bug after all.Perhaps we can get a more detailed description of the bug from jeff ,maybe with a code sample that shows clearly the discrepancy between jython and python behaviour with respect to this bug Also a point of note :if hasattr is reworked so that it does not invoke findattr then patch 1775263(still open) will be rendered invalid ---------------------------------------------------------------------- Comment By: leouser (leouserz) Date: 2006-12-20 23:06 Message: Logged In: YES user_id=1277399 Originator: NO Im trying to figure out the bug here. From: http://docs.python.org/lib/built-in-funcs.html "hasattr( object, name) The arguments are an object and a string. The result is True if the string is the name of one of the object's attributes, False if not. (This is implemented by calling getattr(object, name) and seeing whether it raises an exception or not.)" Running this code: >>> class x: ... def __getattr__(self, name): ... print name and invoking z = x() hasattr(z, "something") produces the same effect on Python as well as Jython. Im working with a Jython3005. leouser ---------------------------------------------------------------------- Comment By: Juneau001 (juneau001) Date: 2006-06-09 00:35 Message: Logged In: YES user_id=1536464 It looks to me like both hasattr and __getattr__ actually invoke __findattr__. I think hasattr may need to be reworked so that it does not use __findattr__. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1501932&group_id=12867 |