PEP 318 - Function Modifier Syntax
ianb at colorstudy.com
Wed Jun 11 00:23:22 CEST 2003
On Tue, 2003-06-10 at 16:57, Erik Max Francis wrote:
> The problem with using `is' is that it already has a very specific
> meaning, namely in the use of the `is' operator.
Note that "in" is already overloaded in the same way, i.e., it is an
operator, and it is a keyword when used with "for". I don't think this
confuses anyone (though perhaps that's because there's more symmetry in
the two meanings).
I think "as" is a bit better, as it expresses what's going on a bit
better (which isn't really declarative, and "is" feels very
declarative). I think that syntactic sugar is just as important as it
is with "for" -- things like "def classmethod foo(self):" or "def
foo(self) [classmethod]" don't look good to me.
I can imagine the alternate interpretation of "as" that would be:
def foo(self) as classmethod: ...
being equivalent to:
def foo(self): ...
classmethod = foo
Which is the analog of import...as, even if it is a useless analog. The
analog of "is" might be:
def foo(self) is classmethod: ...
assert foo is classmethod
Which isn't true, though again such a meaning would be quite useless.
It helps that isinstance(foo, classmethod) is true.
More information about the Python-list