function v. method

danielx danielwong at berkeley.edu
Sat Jul 22 16:10:55 EDT 2006


Bruno Desthuilliers wrote:
> Antoon Pardon wrote:
> > On 2006-07-21, fuzzylollipop <jarrod.roberson at gmail.com> wrote:
> >
> >>danielx wrote:
> >>
> (snip)
> >>
> >>
> >>if you prefix with a single underscore, that tells the user, DON'T MESS
> >>WITH ME FROM OUTSIDE! I AM AN IMPLEMENTATION DETAIL!
> >
> >
> > Personnaly I don't like this convention.
>
> To bad for you.
>
> > It isn't clear enough.
>
> Oh yes ?
>
> > Suppose I am writing my own module, I use an underscore, to
> > mark variables which are an implementation detail for my
> > module.
> >
> > Now I need to import an other module in my module and need access
> > to an implementation variable from that module.
> >
> > So now I have
> > variables with an underscore which have two different meanings:
> >
> >   1) This is an implemantation detail of this module, It is the
> >      users of my module who have to be extra carefull using it.
> >
> >   2) This is an implemantation detail of the other module,
> >      I should be extra carefull using it.
>
> Either you imported with the "from othermodule import *" form (which you
> shouldn't do), and you *don't* have the implementation of othermodule,
> or your used the "import othermodule" form, in which case it's pretty
> obvious which names belongs to othermodule.
>
> Have any other, possibly valid, reason ?
>
> > And I find variable starting or ending with an underscore ugly. :-)
>
> Too bad for you. Choose another language then... PHP, Perl, Ruby ?-)
>

"Too bad for you": While you have a valid point that this contention is
really just arbitrary (just like all conventions), could we be a little
gentler?

Personally, I don't think it looks very good either, but you just have
to deal with it if you're going to use the language properly.




More information about the Python-list mailing list