superpollo wrote:
Masklinn wrote:
...
That's an interesting point, but not relevant at the end of the day: `foo.length` and `length(foo)` have the same "practicality". On the other hand Ruby can be praised for the coherence: everything's a method period end of the story; while Python does have a dichotomy between methods and functions/generic methods (whether or not that dichotomy bothers users is another issue).
...
how would you correct a newbie (like me) who says:

"well, the main difference between a function and a method (from the caller's pow) is a syntactic one:

fun(obj, arguments)

as opposed to:

obj.met(arguments)

but the effect is just about the same."

?

bye

My suggestion

- OO programming:
length(foo) calls the foo instance(or class for some language) length method
length(bar) calls the bar instance length method, it is **not** the same than the foo method

- non OO programming:
length(foo) calls the length function with foo as parameter
length(bar) calls the **same** length function with the bar parameter (so you better make sure length is handling both foo and bar)

So the difference is definitely **not** a syntactic one, but it is true that the syntax obj.method() better illustrates the bind mechanism of the OO programming.

JM

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

Reply via email to