r wrote:
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.



How do I know if foo.value is an attribute or if it is a method that returns the foo value ? It seems you can make the difference only when tokens are composed of more than one word, not very handy don't you think ?

Just feeding the troll.

JM

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to