Static method and class method comments
Kevin.Smith at themorgue.org
Thu Jul 26 17:06:35 CEST 2001
In article <Xns90EA6710921D8duncanrcpcouk at 127.0.0.1>, duncan at rcp.co.uk wrote:
>Not a keyword. You could just make it an optional identifier.
>If you change the existing grammar:
> funcdef: "def" funcname "(" [parameter_list] ")" ":" suite
> funcdef: "def" [funcmodifier] funcname "(" [parameter_list] ")" ":"
> funcmodifier: identifier
>And make it that if a funcmodifier is present, then funcname is set to the
>result of calling funcmodifier on the function.
>then you get:
> def classmethod foo(x, y):
> print "classmethod", x, y
>but you also get the flexibility to write your own modifiers:
> def protected(fn): return protectionwrapper(fn)
> def protected foo(x, y): pass
I really like this idea. This is better than the current implementation and
the Jack Jansen syntax (which I found mildly confusing). It also allows the
current classmethod()/staticmethod() built-ins to still be used, but in a more
appropriate spot in the method definition. I can see a lot of additional
power and flexibility with this idea. This one gets my vote!
More information about the Python-list