Py&禅

博客园 首页 新随笔 联系 订阅 管理
记得在C++中静态方法创建非常的容易,而在python中就没那么容易了,不过也不麻烦,其实我觉得完全可以出去那个关键字的,可能是我学习的不 过深入所以才这样觉得吧。静态方法的重要性不言而喻,在多线程中都有用到。属于类的属性而不是实例的属性,这一点就很有用了,让它没了个性而有了共性哈 哈。创建类的静态属性非常常容易:

class SMethod(object):
def foo():
   print 'calling static method foo'
foo = staticmethod(foo)

其中要用到staticmethod这个内建函数,如果不想这么麻烦就用函数修饰器吧(什么,不知道?那就google吧)

>>> class A:
@staticmethod
def foo():
   print 'calling statifc method foo()'

  
>>> a = A()
>>> a.foo()
calling statifc method foo()

好了,这样就建立了静态方法了。呵呵简单吧。

至于类的方法,就是个好玩的东东了,在c++中我好像没怎么用到这样的东西,其实我c++只学习了半年用了半年呵呵

使用内建函数classmethod 创建时候与staticmethod几乎一样

class TestClassMethod:
def foo(cls):
print 'calling class method foo()'
print 'foo() is part of class:', cls.__name__
foo = classmethod(foo)

一般都用函数参数cls这个是传递类本身,由解释器自动传递,所以就不需要你自己动手了,这个用于反应类本身的属性是很到的,定制自己的方法哈哈, 就不需要dir 这样的了,看的是一板一板的。



posted on 2010-05-24 18:16  Py&禅  阅读(1546)  评论(0)    收藏  举报