我们在进行面向对象学习时,会遇到各种方法,类方法、实例方法、静态方法。那这些到底是什么?怎么用?有啥区别?
Python类中的方法也可以具体可划分为类方法、实例方法和静态方法。
一般,我们在面向对象编程时,类中定义的都是实例方法。
下面这些代码定义的就是实例方法,一般需要传入self参数:
如果要使用以上的实例方法,首先需要实例化一个对象,然后调用方法:
输出如下:
Python类方法中需要至少包含一个参数,一般默认写为cls,类方法的例子如下(在原来实例方法的基础上加入类方法):
大家应该发现了,类方法需要使用修饰语句:@classmethod
类方法主要有两种方式调用:
第一种,使用类名直接调用类方法:
输出:
第二种,使用类实例调用类方法(不推荐):
输出:
从以上可以看出,不创建实例和创建实例,都可以调用类方法。
接下来看看静态方法,静态方法不需要self、cls这样的参数,可以理解为静态方法只是普通的函数,不会用到类属性等内容。类静态方法中无法调用任何类和对象的属性和方法,静态方法与类的关系不大,加入了静态方法代码如下:
静态方法主要有两种方式调用:
第一种,使用类名直接调用静态方法:
输出:
第二种,使用类实例调用静态方法:
输出:
一般来说,实例方法大家必须掌握,其次,建议在面向对象编程中区分一下实例方法和静态方法。当用不到类属性时可以写静态方法,而不是实例方法。当你的某个方法与其它的方法没有任何关系的时候,就可以定义为静态方法和类方法。
大家应该学会了吧~
领取专属 10元无门槛券
私享最新 技术干货