[Python-Dev] Single- vs. Multi-pass iterability

Barry A. Warsaw barry@zope.com
Tue, 16 Jul 2002 10:30:51 -0400


>>>>> "AM" == Alex Martelli <aleax@aleax.it> writes:

    AM> Right -- "i inherit the implementation but none of the
    AM> interfaces".  You can express this either by appropriately
    AM> tagging the "I inherit" part, as C++ does (private inheritance
    AM> -- the default, but that's yet _another_ C++ issue... defaults
    AM> that may or may not be appropriate for typical use!-), or with
    AM> a variation of "exclude-interfaces" however you spell that.

    AM> Alternatively, "I inherit" could default to "not the
    AM> interfaces", and, if needed, one might add a clause "oh, and
    AM> all the interfaces too, please" when that is positively
    AM> desired.  Maybe the default would best be chosen on the basis
    AM> of "what is good for them" rather on "what appears most
    AM> desirable intuitively", as is currently done for module
    AM> imports.

I don't know, it seems like 6-one-way, half-dozen-the-other, but I
tend to agree with Guido on this one.

    AM> Defaulting to "i inherit all" is roughly as convenient as
    AM> defaulting to "from amodule import *" would be felt to be by
    AM> naive users unfamiliar with the issues of namespace pollution.

Interface conformance seems totally different than name importing, so
I don't think the analogy holds.  I just feel that in Python, I rarely
use inheritance for implementation convenience only.

-Barry