Class Methods help

Lie Ryan lie.1296 at gmail.com
Sun May 31 09:44:26 EDT 2009


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




More information about the Python-list mailing list