Python中的静态方法?

Python中的静态方法?

是否可以在Python中使用静态方法,这样我就可以在不初始化类的情况下调用它们,例如:

ClassName.StaticMethod ( )


莫回无
浏览 543回答 3
3回答

汪汪一只猫

是的,使用静态法装饰师class MyClass(object):     @staticmethod     def the_static_method(x):         print xMyClass.the_static_method(2) # outputs 2注意,一些代码可能使用定义静态方法的旧方法,使用staticmethod作为一种功能而不是装潢师。只有当您必须支持Python的古老版本(2.2和2.3)时,才应该使用它。class MyClass(object):     def the_static_method(x):         print x     the_static_method = staticmethod(the_static_method)MyClass.the_static_method(2) # outputs 2这与第一个示例完全相同(使用@staticmethod),只是不使用漂亮的装饰语法最后,使用staticmethod()小心点!在Python中需要静态方法的情况很少,而且我曾多次看到它们使用单独的“顶级”函数会更清楚。以下是文件中的逐字记录::静态方法不接收隐式第一个参数。要声明静态方法,请使用以下成语:class C:     @staticmethod     def f(arg1, arg2, ...): ...@staticMethod表单是一个函数装饰师-参见函数定义关于细节。可以在类中调用它(如C.f())或实例(例如C().f())。除了它的类之外,实例将被忽略。Python中的静态方法与Java或C+中的方法相似。有关更高级的概念,请参见classmethod().有关静态方法的更多信息,请参阅标准类型层次结构.新版本2.2。在2.4版本中更改:添加了函数修饰器语法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python