Python 2.6: Is there a built-in way to check if a Unicode string
has non-ASCII chars without having to check each char in the
string?

Here's my use case: I have a section of code that makes frequent
calls to hasattr. The attribute name being tested is derived from
incoming data which at times can contain international content.

hasattr() raises an exception when passed a Unicode attribute
name. I would have expected a simple True/False return value vs.
an encoding error.

UnicodeEncodeError: 'ascii' codec can't encode character
u'\u012c' in position 0: ordinal not in range(128)

Is this behavior by design or could I be encoding the string I'm
passing hasattr() incorrectly?

If its by design, I'm thinking the best approach for me would be
to write  a hasattr_enhanced() function that traps the Unicode
encoding exception and returns False and use this function in
place of hasattr(). Any thoughts on this strategy?

Thank you,
Malcolm
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to