Object type problem

Mike Fletcher mfletch at tpresence.com
Thu May 11 23:46:44 CEST 2000


Normal response would be to use string formatters...

logstr = '%s: %s\n' % (now, strng )

The problem you're encountering is that you're trying to add None to a
string.  Strings and Nones or strings and numbers are not addable in Python
without an explicit conversion, so, if you want to keep your syntax:

logstr = str( now) + ": " + str( strng) + "\n"

Enjoy,
Mike

-----Original Message-----
From: Jonathan Donald [mailto:jonathan at ldis.com]
Sent: Thursday, May 11, 2000 4:28 PM
To: python-list at python.org
Subject: Object type problem



Sorry if this is a really dumb question:

I get an odd (to me) error message when trying to do this:

        logstr = now + ": " + strng + "\n"

the error message:

      TypeError: __add__ nor __radd__ defined for these operands 

The facts:

now is a string
strng is _usually_ a string (or None/null, depending on the
circumstances). Maybe something else...?

The error never takes place when strng is a string of one or more
characters.

I understand that __add__ and __radd__ are special operator definitions,
and I'm assuming that when this error comes up, strng is not a string,
but another type of object that does not define these operators.

I've tried testing for strng==None, but this doesn't stop the error from
being reported.

I've tried to figure out what class strng belongs to, but I can't seem
to do it.

Can anyone help me?

Many thanks,

Jonathan




More information about the Python-list mailing list