静态方法
静态方法就是该方法没有绑定某个对象。和对象方法不同的是,其定义时第一个参数不是self,这看起来更像一个普通方法。由于没有self参数,所以也不能使用“self.属性名”来访问某个对象的属性了。静态方法的定义格式如下:
@staticmethod
def static_func():
pass
在Student类中,得到最低成绩和最高成绩是比较适合用静态方法来实现的,因为这两个函数不需要操作学生对象的数据。如下面的代码所示。

类方法
类方法也不属于某个对象,所以其第一个参数也不为self。但它属于某个类,所以其第一个参数一定是cls。
类方法是通过类来直接调用的,或者通过实例直接来调用。

在使用时不需要指定第一个参数cls,因为该函数有一个隐含的属性__self__,它就是cls的值。

实例方法
在类中定义的函数,第一个参数是self,指向调用该方法的实例本身。

网友评论