variable declaration
Diez B. Roggisch
deetsNOSPAM at web.de
Mon Jan 31 12:28:34 EST 2005
> A decorator is a modifier to a subsequent binding, and it modifies the
> reference and not the referent. So how is it anythng but declarative?
I learned the hard way that it still is simply interpreted - its a pretty
straight forward syntactic sugaring, as this shows:
foo = classmethod(foo)
becomes:
@classmethod
Now @classmethod has to return a callable that gets passed foo, and the
result is assigned to foo - not more, not less, so it becomes equivalent to
the older type of creating a class method.
Is this a declaration? I'd personally say and think "practically, yes", as I
also view
class Bar:
....
as a declaration. But obviously some people like Alex Martelli have
different views on this (and are right), because you can do this in python:
if condition:
class Foo:
def bar(self):
pass
else:
class Foo:
def schnarz(self):
pass
So that makes class statements not as declarative as they are in languages
like java.
So to sum it up (for me at least): things like metaclasses, decorators and
so on make me write code more declarative - if they are a declaration in
the strict sense, I don't bother.
--
Regards,
Diez B. Roggisch
More information about the Python-list
mailing list