I was wondering if converting to string i.e.
x = str(value)
x = None
Only if you encounter a custom class that explicitly raises an exception in
__str__ is not defined), for example:
class Foo: def __str__(self): raise ValueError("For some reason")
But personally, I have never seen this and I'm pretty sure no one has; it would be daft to do it. Likewise, a silly mistake in the implementation of
__str__ might create another
Other than that case, no built-ins can raise an exception in this case since it is defined for all of them in
For user defined classes
str will use
object.__str__ by default if not defined in Python 3 and, in Python 2, use it if a class is a new style class (inherits from
If a class is an old style class I believe it is
classobj.__str__ that is used.