<div dir="ltr">Jim Jewett wrote:<br>
<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
One of the problems with the current syntax is that calling sites<br>
don't match the definition site the way they do for normal functions.<br>
This proposal doesn't seem to help with that.<br>...<br></blockquote></div><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
   def m(self, a, b, z=None): ...<br>
<br>
    # self is moved outside the parens, changing the tuple size<br>
    self.m(a, b, z)<br>
    self.m(a, b)<br>
</blockquote>
<br></div></blockquote><div>On Sun, Aug 24, 2008 at 6:26 PM, Terry Reedy <span dir="ltr"><<a href="mailto:tjreedy@udel.edu">tjreedy@udel.edu</a>></span> wrote:<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

If m is an attribute of type(s) (which is s.__class__), this shrinkage is a convenient abbreviation, not a requirement.  The above calls are the same as<br>
type(s).m(s.a,b,z) or type(s).m(s,a,b).  Or, if you prefer,<br>
fn = type(s).m # or s.__class__.m<br>
fn(s,a,b,z)<br>
If m is an attribute s, and s in not a class, the shrinkage is not available, and one must write s.m(s,a,b,z) or s.m(s.a,b).<br>
<br>
Terry Jan Reedy</blockquote><div><br>If I could write:<br><br>  class foo:<br>    def self.bar():<br>      self.rebar(self.babar)<br><br>then the call to  object.bar() would match the declaration. <br><br>Back to Russ's proposal: it would be better accomodated IMHO by allowing $ as a character in a variable name, just like _ is. Then, conventionally, people could use $ as self:<br>
<br>  def $.bar():<br>    $.rebar($.babar)<br><br>and for whatever it's worth, I find $.bar easier to read then $bar as the explicit dot reminds me it's doing an attribute get rather than looking like a special variable name.<br>
<br>--- Bruce<br><br></div></div></div>