Antoon Pardon <[email protected]> writes:
> What I am trying to do is the following.
>
> class MyClass (...) :
> @register
> def MyFunction(...)
> ...
>
> What I would want is for the register decorator to somehow create/mutate
> class variable(s) of MyClass.
>
> Is that possible or do I have to rethink my approach?
As others have already explained: the decoration works an the
function (not the method) level. A function knows nothing of a class.
Others have already pointed out work arounds.
I add an additional one:
Instead of:
class C:
...
@decorate
def f(...): ...
...
you can use:
class C:
...
def f(...): ...
...
decorate(C, C.f)
In Python 2, "C.f" returns a method (an object with a
reference to the class and the function) - there, you would
not need the class parameter for "decorate".
In Python 3, however, "C.f" is the function (without any reference
to the class.
--
https://mail.python.org/mailman/listinfo/python-list