On 2012-06-19, at 4:17 PM, Jim Jewett wrote:
>> I can tweak the PEP to make it more clear for those who don't know
>> that staticmethods are not exactly methods, but do we really need that?
> 
> I would prefer it, if only because it surprised me.  When do
> distinguish between methods, staticmethod isn't usually the odd man
> out.
> 
> And I also agree that the implementation doesn't need to change
> (except to add a comment), only the PEP.

Actually, it appears we don't need those special checks (for classmethod 
and staticmethod) at all.

      class Foo:
          @staticmethod
          def bar(): pass

      >>> Foo.bar
      <function bar ...>

      >>> Foo().bar
      <function bar ...>

      >>> Foo.__dict__['bar']
      <staticmethod ...>

So using the signature will be OK for 'Foo.bar' and 'Foo().bar', but
not for 'Foo.__dict__['bar']' - which I think is fine (since
staticmethod & classmethod instances are not callable)

I'll just remove checks for static- and class-methods from the
PEP signature() algorithm section.

-
Yury
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to