python 小知识 -classmethod 类方法
python 类提供了三种不同的方法:
普通方法:参数带 self, 是类实例化才能访问的方法,
静态方法:@staticmethod 装饰的方法,通常是与类对象无关的方法,如工具计算,类可直接调用
类方法:@classmethod 装饰的方法,参数有一个隐含参数 cls,表示类本身,类可以直接调用
我们来看一下例子:
复制代码
复制代码
从上面调用例子来看,
wedo/wedo2 是 Person 类的一个实例对象,
a 是 Person 类属性同时所有实例共享的属性
name 和 age 是类实例属性, 不同实例值可以不同。
让我们来通过类方法来修改下类属性 a
复制代码
从上可知,类方法可以通过 Person 类直接调用(当然也可以实例调用),来改变不同实例的共享类属性。在类方法中通过 cls 来表示类本身,以便访问类本身的属性;当然也可以创建类的实例。
在上面的例子,我们通过类方法 create_engineer,实现了新的 Person 的初始化实例。
复制代码
那么类方法的作用是什么?总结一下:
类方法可以统一控制类属性,并影响所有实例对象;这在需要对所有实例进行同步控制的时候特别有用
类方法,可以向工厂方法一样,重新定义类的实例化;这可以在处理不同初始化的的情况使用
希望以上,对你有帮助
版权声明: 本文为 InfoQ 作者【AIWeker】的原创文章。
原文链接:【http://xie.infoq.cn/article/9b7cddd6c455522308794cbf1】。文章转载请联系作者。
评论