Which coding style is better? public API or private method inside class definition

Inyeol inyeol.lee at gmail.com
Tue Jan 4 23:46:34 EST 2011


For example: I'm writing simple class:

    class Numbers:
        def __init__(self, numbers):
            self._numbers = numbers
        def get_all(self):
            for number in self._numbers:
                yield number

If I want to add another method for yielding even numbers only, I may
use:

        def get_even(self):
            for numbers in self._numbers:
                if numbers % 2 == 0:
                    yield number

or, I can use public method 'get_all' instead of using private
attribute '_numbers', like:

        def get_even(self):
            for numbers in self.get_all():
                if numbers % 2 == 0:
                    yield number

Which coding style do you prefer? I'm more toward public API way,
since it requires less code change if I refactor private data
structure later.
Plz give pros and cons of these.



More information about the Python-list mailing list