Returning a date as string

John Machin sjmachin at lexicon.net
Sat Apr 21 20:26:53 EDT 2007


On Apr 22, 6:59 am, Björn Keil <abgr... at silberdrache.net> wrote:
> Hello pythons,
>
> I have little problem with understanding conversions in python. I've
> written a little class - nothing much, just to try out Python a little
> - containing the following method:
>
>     def __repr__(self):
>         """Serializes the note.
>
>         Currently the format of notes isn't decided upon. XML output
> is
>         projected."""

Insert here:

print "Due: %r" % self.dateDue
print "Created: %r" % self.dateCreated
print "Subject: %r" % self.subject
print "Content: %r % self.content


>         return "Due: " + str(self.dateDue) + \
>                "\nDate: " + str(self.dateCreated) + \
>                "\nSubject: " + self.subject + \
>                "\n" + self.content
>
> The fields "dateDue" and "dateCreated" contain datetime.date objects.
> Now when I try to serialize the whole thing:
>
> >>> myNote
>
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
>   File "notes.py", line 81, in __repr__
>     return "Due: " + str(self.dateDue) + \
> TypeError: cannot concatenate 'str' and 'datetime.date' objects
>
> I tryed different variant before I wrapped "self.dateDue" in a str()
> constructor:
> I tried to put it in brackets, or call its .isoformat() method.
> Nothing works. It still complains that I was trying to concatenate a
> string with a date, but I really wanna concatenate a string with a
> string!
>
> Could anyone please tell me what I am doing wrong?

Not showing us the *whole* code that you are executing.

Suggestions:
(1) Maybe dates have crept into self.subject and self.content. The
print statements above should show exactly what you've got.

(2) Maybe you didn't save it before you ran it. Maybe you forgot to
reload(yourModule). Try making up the smallest possible script that
demonstrates your problem. Get out of whatever IDE you may be using
and go to the OS command-line prompt. Use type (windows) or cat (*x)
to print your script on the console. Run your script. Copy the console
contents and paste it into your mail/news client.

HTH,
John




More information about the Python-list mailing list