Hello, I've written two classes. One class describes experts: experts
has a unique ID and a name. An expert knows topics and other experts. A
topic is described by my other class and includes a unique ID and a
name. Now I have a problem with the __str__ method in my Expert class:
output = '%s:%s' % (self.expert_id, self.name)
output += '\nKnown topics: %s' % (', '.join(str(self.topics)))
# print 'Known experts: '
# for e in self.known_experts:
# print '%s:%s' % (e.expert_id, e.name)
self.topics is a list of objects of type Topic.
self.known_experts is a list of objects of type Expert, specifically the
experts known by the given expert.
When I print an object of type Expert, the output is not what I want. If
the expert knows only one topic, say polemics, the output is:
Known topics: t, 5, :, P, o, l, e, m, i, c, s
If the expert knows two topics, say Polemics and The Parthenon, then the
Known topics: [, <, _, _, m, a, i, n, _, _, ., T, o, p, i, c, , i, n,
s, t, a, n, c, e, , a, t, , 0, x, 0, 2, 2, 2, D, 0, 8, 0, >, ]
This is not what I want. :) I want the output like this:
Known topics: t5:Polemics, t6:The Parthenon
Also, notice the code I've commented out. If I can get the join above to
work (with your help) my next question is how to present the known
experts in a comma separated list with only expert_id and name? I can't
use the normal __str__() method (the one I'm writing here) because it
prints too much information. Does that mean a join is out of the question?
Thanks for any replies!