On 30 Jul 2009, at 19:37 , Jean-Michel Pichavant wrote:
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 cannot be an attribute. Ruby doesn't give access to attributes,
they're always solely private (as in Smalltalk). Also you shouldn't
reply to r, he has no idea about what he's talking about.
--
http://mail.python.org/mailman/listinfo/python-list