假设我用静态方法创建一个类,并希望从另一个类方法或脚本函数中运行该方法。
静态方法的范围是什么?
ex:
def Class myClass:
@staticmethod
def mystaticmethod(input):
print("blah")
def scriptfunc():
myClass.mystaticmethod()
这有效吗?
您可以从可访问ClassName.methodName()
的任何地方(因此,在同一封闭范围内,或在导入ClassName
之后的另一个模块中,只需执行ClassName
。
Python具有docs on namespace precedences, which you can read here。足以说明;对于一般对象,只要可以访问对象本身,它们的“专用”名称空间就可以通过点运算符完全访问。这包括直接在其中定义的所有变量和函数。
您所拥有的有效。
但是出于@staticmethod
的目的过于详细,这里是[[简短答案:
@staticmethod
意味着两件事:__init__
或超级方法来覆盖其内容或属性,并且不需要子类/父类来处理自身。