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

问题描述 投票:0回答:2

假设我用静态方法创建一个类,并希望从另一个类方法或脚本函数中运行该方法。

静态方法的范围是什么?

ex:

def Class myClass:

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

def scriptfunc():
     myClass.mystaticmethod()

这有效吗?

python python-3.x object scope static-methods
2个回答
0
投票

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

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


0
投票

您所拥有的有效。

但是出于@staticmethod的目的过于详细,这里是[[简短答案:

声明@staticmethod意味着两件事:

    您不关心方法的属性或属性,因为它独立于其他类,
  1. 您不需要创建__init__或超级方法来覆盖其内容或属性,并且不需要子类/父类来处理自身。
© www.soinside.com 2019 - 2024. All rights reserved.