Using metaclasses to play with decorators.
Duncan Booth
me at privacy.net
Wed Jun 23 08:26:08 EDT 2004
"Colin J. Williams" <cjw at sympatico.ca> wrote in
news:uRdCc.27945$Nz.1231193 at news20.bellglobal.com:
> OK, I'll ignore 'staticmethod', but could you tell me how
>
> def methodA(x, y) [noself]:
> return x + y
>
> differs in substance from
>
> def methodA(self, y):
> return self + y
>
> or
> def methodA(x, y):
> return x + y
>
> What has been gained by the added syntactic clutter?
Does this help?
class X:
def methodA(x, y) [ staticmethod ]:
return x+y
def methodB(self,y):
return self+y
def methodC(x,y):
return x+y
anX = X()
anX.methodA(2, 3) # returns 5
anX.methodB(2, 3) # Exception: too many arguments
anX.methodC(2, 3) # Exception: too many arguments
X.methodA(2, 3) # returns 5
X.methodB(2, 3) # Exception: First argument must be an instance of X
X.methodC(2, 3) # Exception: First argument must be an instance of X
More information about the Python-list
mailing list