为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的静态方法?

Python中的静态方法?

莫回无 2019-06-21 13:39:04
Python中的静态方法?是否可以在Python中使用静态方法,这样我就可以在不初始化类的情况下调用它们,例如:ClassName.StaticMethod ( )
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

是的,使用静态法装饰师

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版本中更改:添加了函数修饰器语法。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 542 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信