python classmethod和staticmethod
在早期的python版本(2.2之后)中就有了这两个东东,staticmethod就对应于C++的静态成员函数,而classmetho在C++中是找不到对等体的(它的第一个参数是类对象,而不是类实例)。
def smethodimp(arg):
do somthing
smethod = staticmethod(smethodimp)
def cmethodimp(cls, arg):
do something
cmethog = classmethod(cmethodimp)
一般情况下,smethod和smethodimp可以用同一个名字(比如都叫smethod),同样cmethod和cemthodimp也可以同名。
这样的定义总是怪怪的,在2.4版本之后,我们可以用decorator来重写这难看的代码,不过decorator的功能远超出这么简单,我暂时还不能理解其精髓啊(等用时再看吧)。
def smethodimp(arg):
do somthing
smethod = staticmethod(smethodimp)
def cmethodimp(cls, arg):
do something
cmethog = classmethod(cmethodimp)
一般情况下,smethod和smethodimp可以用同一个名字(比如都叫smethod),同样cmethod和cemthodimp也可以同名。
这样的定义总是怪怪的,在2.4版本之后,我们可以用decorator来重写这难看的代码,不过decorator的功能远超出这么简单,我暂时还不能理解其精髓啊(等用时再看吧)。

0 Comments:
发表评论
<< Home