1. method分类
Python里面同时有function和method,这里只说method,就是在类里面定义的。
分类:类成员方法,类方法,静态方法;不同点在于作用域名,和JAVA来个对比:
Python | JAVA | 说明 |
---|---|---|
Class method | Class/Static method | JAVA中不区分 |
method | method | 成员方法两者没区别 |
Static method | - | JAVA中没有和Python static method对应的产物 |
2. 对比static method和class method
static method实际是一种将function转成method的方式,最大的好处在于可以使代码更加清爽。
static method只是借用了类的namespace,本质上开始可以认为是一个function。
弄清本质区别后,将static method和 class method拿来比较就没有意思了,所以就不继续瞎研究区别了。
一个类中的static method不会太多,多了就该反思了。
3. 可靠的参考
http://stackoverflow.com/questions/735975/static-methods-in-python
https://docs.python.org/2/reference/datamodel.html#types