静态方法在python中做什么?



我目前正在学习Python,并且是新手。我遇到了 OOP 概念,但仍然对静态方法的主要目的感到困惑。我无法想象它的实用性或何时应该使用它(需要时(。有谁知道它的作用以及我什么时候应该使用它?

静态方法的一个常见用例是特定的对象创建。

例如,如果您有一个类 A,则可以从字符串数据初始化。但字符串数据可以是 xml 或 json。您可以看到类似以下内容:

class A:
@staticmethod
def fromXml(string):
result = A()
result.data = ...parseXML...
return result
@staticmethod
def fromJson(string):
result = A()
result.data = ...parseJson...
return result

然后像这样使用它:

object1 = A.fromXml("<xml><data>hello</data></xml>")
object2 = B.fromJson("{'data': 'hello'}")

静态方法是不使用类实例(self参数(的方法。 假设您有这样的类:

class test:
def func1(self): print('hello ' + self.name)
@staticmethod
def func2(): print('hello')
a = test()
a.name = 'PyCoder'

然后您将使用test的实例调用func1,例如:a.func1()

func2是静态的,因此它不需要实例,您将使用类型名称调用它。 例如:test.func2()

最新更新