From: Paul Date: 2007-12-18T09:45:04+09:00 Subject: self and private setter A private method cannot be called with an explicit receiver -- even self -- except when calling a private setter method, because otherwise an assignment to a local variable will be assumed. For example: ----------------------- class Q def a1 @p = nil self.p=(3) @p end def a2 @p = nil p=(3) @p end private def p=(obj) @p = obj end end ----------------------- CONSOLE >> Q.new.a1 => 3 >> Q.new.a2 => nil ----------------------- Since there is already this exception to the rule, why not allow explicitly using self for ALL private methods? What harm can be done?