Python静态方法

时间:2020-02-23 14:43:21  来源:igfitidea点击:

Python静态方法

在这篇快速文章中,我们将学习如何创建和使用Python静态方法。
我们还将看看静态方法与实例方法相比有哪些优点和缺点。
让我们开始吧。

什么是静态方法?

Python中的静态方法与python类级别的方法极为相似,不同之处在于静态方法绑定到一个类而不是该类的对象。

这意味着可以在没有该类对象的情况下调用静态方法。
这也意味着静态方法无法修改对象的状态,因为它们没有绑定到对象。
让我们看看如何在Python中创建静态方法。

创建python静态方法

Python静态方法可以通过两种方式创建。
让我们看看这里的每种方式:

使用staticmethod()

让我们直接跳至示例代码段,了解如何使用" staticmethod()"方法:

class Calculator:

  def addNumbers(x, y):
      return x + y

# create addNumbers static method
Calculator.addNumbers = staticmethod(Calculator.addNumbers)

print('Product:', Calculator.addNumbers(15, 110))

请注意,我们在没有对象的情况下调用了我们创建的addNumbers。
当我们运行该程序时,将获得以下输出:毫无意外。
这种方法在每个地方都受到控制,因此也可以从类方法中创建静态方法。
让我们在这里查看带有相同示例的另一种方法。

使用@staticmethod

这是创建静态方法的一种更微妙的方法,因为我们不必依赖于将方法定义为类方法的语句定义,并在使其变为静态的每个位置使其变为静态。

让我们在代码段中使用此注释:

class Calculator:

  # create addNumbers static method
  @staticmethod
  def addNumbers(x, y):
      return x + y

print('Product:', Calculator.addNumbers(15, 110))

运行此程序时,将获得以下输出:这实际上是创建静态方法的一种更好的方法,因为一旦创建并使用@staticmethod进行标记,就保持了静态方法的意图就明确了注释。

Python静态方法的优点

静态方法有一个非常明确的用例。
当我们需要一些功能而不是一个对象但需要一个完整的类时,我们将方法设为静态。
当我们需要创建Utility方法时,这是非常有利的,因为它们通常与对象生命周期无关。

最后,请注意,在静态方法中,我们不需要将" self"作为第一个参数传递。