[BangPypers] Return values

Anand Chitipothu anandology at gmail.com
Sat Sep 20 11:29:07 CEST 2014


On Sat, Sep 20, 2014 at 2:34 PM, Noufal Ibrahim KV <noufal at nibrahim.net.in>
wrote:

>
> I've recently come across something that I'd like some comments on. It's
> a stylistic issue so not something that there's an objective answer
> for. Nevertheless.
>
> I have a function that gets some statistics from some source and returns
> it to the user as a Stats object. Let's call it get_stats. This has a
> parameter `consolidate`. If consolidate is True, it will combine all the
> statistics and return just one Stats object. If not, it will return a
> list of Stats objects.
>
> The problem now is that this function sometimes returns a single thing
> and some times a list. I don't like this since I have to alter my
> calling code to handle this.
>
> I'm surprised that I've never hit this before and I'm not really sure
> how to handle it.
>
> Comments?
>

Oh, that feels like PHP. That style seems to be popular in that side of the
world.

It might be a good idea to add consolidate method on the return value.
Something like:

class StatsList(list):
    def consolidate(self):
        ..

print get_stats(..)
print get_stats(..).consolidate()

Anand


More information about the BangPypers mailing list