Confessions of a Python fanboy

r rt8396 at gmail.com
Thu Jul 30 19:09:02 CEST 2009


On Jul 30, 11:31 am, Falcolas <garri... at gmail.com> wrote:
> On Jul 29, 9:06 pm, r <rt8... at gmail.com> wrote:
>
> > 1.) No need to use "()" to call a function with no arguments.
> > Python --> "obj.m2().m3()" --ugly
> >   Ruby --> "obj.m1.m2.m3"  -- sweeet!
> > Man, i must admit i really like this, and your code will look so much
> > cleaner.
>
> I personally would not prefer this, and would likely continue to use
> (), precisely for code clarity - let me explain:
>
> foo.nextval
> foo.val
> foo.previousval
>
> Which of the calls above referenced instance variables, and which ones
> called functions which changed the internal state of foo? I would have
> trouble saying, just based on the calls above. I would have to go back
> to the definition or documentation of foo to identify which is doing
> what. On the other hand, the following gives a better clue as to what
> is happening (granted not perfect, but better):
>
> foo.nextval()
> foo.val
> foo.previousval()
>
> ~G

I held your exact same view before i learned the Ruby language. And
your veiw makes some good points, however, naming conventions with
eliminate this problem all together. All "method names" should use the
underscore to separate words, "variable names" should use camelCase,
"constants" in all caps, and "class defs" in titlecase.

def go_and_do_this_for_me_now(self, *args)
self.variableNameHere
MyClassNameHere
THISISACONSTANT -or- THIS_IS_A_CONSTANT


in your example i would have used the following

foo.next_value
foo.value
foo.prev_value

good naming conventions will make your life (and everybody else's)
much easier when debugging code.






More information about the Python-list mailing list