-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Chris Withers wrote:
Dieter Maurer wrote:
I strongly argue against it. Fix "hasattr" in the Zope context, instead!
_marker = [] def hasattr(obj, attr, marker): a = getattr(obj, attr, _marker) return a is not _marker
import __builtin__ __builtin__.hasattr = hasattr
Easy enough, isn't it?
Way easier than to change "hasattr" anywhere it is now used.
Anyone think putting this in Zope core is a good idea?
- -1. Python's 'hasattr' semantics are *broken by definition*, and will never be fixed (because of backward compatibility). Non-Zope Python programmers will *not* expect or want exceptions raised from 'hasattr'. As a local patch, this isn't too bad (one could even package it as a do-nothing-after-initialization product). However, no redistributed product code should rely on the presence of a patched 'hasattr', but should use the 3 argument getattr instead. Tres. - -- =================================================================== Tres Seaver tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFClxEU+gerLs4ltQ4RAto2AKDNc44GLkHYn9s2CMvEJrBZnUxaEwCfYK0J PtE2/G2CkGBec869OOQWmjo= =1IHS -----END PGP SIGNATURE-----