优草派  >   Python

Python类方法和静态方法的区别是什么?Python类方法 静态方法有哪些异同点

罗西汉            来源:优草派

python之中能够通过关键字class创建出类这种和模板有点相同的结构,而在类中定义的函数被称为方法,根据定义方式不同也会分为不同类型。下面这一篇文章主要介绍的内容就是,python类方法和静态方法之间的区别,对此感兴趣和想了解的话就一起看看吧。

Python类方法和静态方法的区别是什么?Python类方法 静态方法有哪些异同点

一、装饰器不同

类方法和静态方法之间最明显的差异就是使用的装饰器不同了,而装饰器本质上就是一个能够来拓展函数功能的函数。类方法使用装饰器@classmethod来进行装饰,而静态方法则使用@staticmethod装饰器。

而它们二者之间的共同点也在于装饰器,也就是类方法与静态方法都需要使用指定装饰器才能够定义。

二、参数不同

类方法之中是必须要有一个参数,而这个参数的名称通常是cls,且该参数需要放在第一的位置。而这个参数表示的意思实际上就是类本身,是用来指代这个类自己的。而静态方法不需要任何强制定义任何参数,它参数列表内没有参数也是可以的。

三、调用方式相同

以上两点就是类方法以及静态方法的不同点,而它们之间最为显著的相同点则是调用方式不同。因为这两种类型的方法都不需要通过类实例对象调用,直接用类名点方法名就是可以去调用了,并且在调用时都不需要传入任何参数,详细代码示例如下所示:

class Book:
  @classmethod
  def class_method(cls):
    print(f"called class method of {cls}")
  @staticmethod
  def static_method():
    print("Called static method")
Book.class_method()
Book.static_method()

以上就是关于“Python类方法和静态方法的区别是什么?Python类方法

静态方法有哪些异同点”的全部内容了,希望对你有所帮助。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行