On Jul 30, 11:31 am, Falcolas <garri...@gmail.com> wrote: > On Jul 29, 9:06 pm, r <rt8...@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. -- http://mail.python.org/mailman/listinfo/python-list