Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #5038 > unrolled thread

Re: Custom string joining

Started byTerry Reedy <tjreedy@udel.edu>
First post2011-05-09 19:16 -0400
Last post2011-05-09 19:16 -0400
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Custom string joining Terry Reedy <tjreedy@udel.edu> - 2011-05-09 19:16 -0400

#5038 — Re: Custom string joining

FromTerry Reedy <tjreedy@udel.edu>
Date2011-05-09 19:16 -0400
SubjectRe: Custom string joining
Message-ID<mailman.1362.1304982995.9059.python-list@python.org>
On 5/9/2011 4:25 PM, Claudiu Popa wrote:

> I  already told in the first post that I've implemented __str__ function,
 > but it doesn't seems to be automatically called.

No, Python does not auto-coerce to strings (only between numbers).
You have to be explicit by calling str. Karim's statement "You just have 
to implement __str__() python special method for your "custom_objects". 
" means that str will then work.

> For instance, the following example won't work:
>
>>>> class a:
>          def __init__(self, i):
>                  self.i = i
>          def __str__(self):
>                  return "magic_function_{}".format(self.i)
>>>> t = a(0)
>>>> str(t)
> 'magic_function_0'
>>>> "".join([t])

print('\n'.join(str(ob) for ob in [a(0), a(1), a(None)]))

magic_function_0
magic_function_1
magic_function_None

-- 
Terry Jan Reedy

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web