FYI, same without decorators, if you python version does not support it.
class MyClass:
def some_func(x):
return x+2
some_func = staticmethod(some_func)
JM
bd satish wrote:
Thanks to Tim Chase & Lie Ryan !! That was exactly what I was looking for !!
It's time for me to now read the documentation of "decorators" and
@classmethod and also @staticmethod.
I'm quite new to decorators...
-- Satish BD
On Sun, May 31, 2009 at 4:44 PM, Lie Ryan <lie.1...@gmail.com> wrote:
bdsatish wrote:
Hi,
I have a question regarding the difference b/w "class methods" and
"object methods". Consider for example:
class MyClass:
x = 10
Now I can access MyClass.x -- I want a similar thing for functions. I
tried
class MyClass:
def some_func(x):
return x+2
When I call MyClass.some_func(10) -- it fails, with error message:
TypeError: unbound method some_func() must be called with MyClass
instance as first argument (got int instance instead)
OK. I figured out that something like this works:
obj = MyClass()
y = obj.some_func(10)
BUT, this means that we have functions applying for instances. That is
we have "instance method". Now, how do I implement some function which
I can invoke with the class name itself ? Instead of creating a dummy
object & then calling.... In short, how exactly do I create "class
methods" ??
with staticmethod decorator:
class MyClass:
... @staticmethod
... def some_func(x):
... return x+2
...
MyClass.some_func(10)
12
--
http://mail.python.org/mailman/listinfo/python-list
--
http://mail.python.org/mailman/listinfo/python-list