如何在函数中调用静态方法?静态方法的范围

How to call static methods in functions? Scope of static methods

假设我创建了一个带有静态方法的 class 并希望从另一个 classes 方法或脚本函数中 运行 该方法。

静态方法的范围是什么?

例如:

def Class myClass:

     @staticmethod
     def mystaticmethod(input):
          print("blah")

def scriptfunc():
     myClass.mystaticmethod()

这有效吗?

您可以从 ClassName 可访问的任何地方执行 ClassName.methodName()(因此,在相同的封闭范围内,或在导入 ClassName 后的另一个模块中)。

Python 有 docs on namespace precedences, which you can read here。只要说。。。就够了;对于一般的对象,它们的 'private' 命名空间完全可以通过点运算符访问,只要对象本身是可访问的。这包括直接在其中定义的所有变量和函数。

你所拥有的是有效的。

但是@staticmethod的目的太详细了,这里简短回答:

声明 @staticmethod 意味着两件事:

  1. 您不关心方法的特性或特性,因为它独立于其他 classes,
  2. 您不需要创建 __init__ 或超级方法来覆盖它的内容或属性,也不需要 subclass/parent class 来处理它自己。