Python中的Classmethod()
Python有一个内置的函数叫classmethod(),它可以给出一个指定函数的类方法。
语法
参数: 该方法接受函数的名称作为其参数。
返回类型: 该方法返回转换为类方法的函数。
我们也可以使用装饰器形式@classmethod来定义classmethod。
语法
其中。
函数: 这是需要被转换为类方法的函数
返回: 该函数转换后的类方法。
classmethod()函数不是绑定在一个实例上,而是绑定在类上。类和对象都能够调用类的方法。类和对象都可以用来调用这些方法。
类方法与静态方法
尽管静态方法不需要特别的参数,但类方法接受cls作为它的第一个参数。
尽管静态方法不能访问或改变类的状态,但类方法可以。
静态方法通常不知道类的状态。它们是实用方法,在接收到一些参数后对它们进行操作。另一方面,类必须是类方法的一个参数。
Python的@classmethod装饰器和@staticmethod装饰器分别用来生成类方法和静态方法。
Python 中 classmethod 的例子
这个例子将展示如何创建一个简单的 classmethod。
在这个插图中,我们将学习如何构造一个类方法。为了做到这一点,我们做了一个叫做 Python 的类,其中有一个叫做课程的变量和一个叫做 algo 的方法,这个方法可以打印传递给它的对象。
然后我们在将方法Python.algo传入classmethod后,调用了类的函数algo,而没有构造函数对象,这就将方法转化为类方法。
代码
输出
使用classmethod()函数创建一个类方法
代码
输出
使用类方法的工厂方法
工厂设计模式在使用类名而不是对象来调用几个函数时,使用classmethod()函数。
代码
输出