【问题标题】:(Python) Is there any advantage to using staticmethods? [duplicate](Python)使用静态方法有什么好处吗? [复制]
【发布时间】:2021-04-10 03:21:36
【问题描述】:

当我的 linter 建议我将方法设为静态时,我早些时候正在编写一个函数。 我一直在使用静态方法,但并不真正知道它们的用途或用途,此外我无法访问当前类的任何属性(因为没有 self)

我只是在闲逛,这样做有什么好处

class Foo:
    @staticmethod
    def bar():
        return "bazz"

刚刚做完

class Foo:
    def bar(self):
        return "bazz"

谢谢。

【问题讨论】:

  • 啊,是的,不知道我自己怎么没有通过这个。谢谢。

标签: python static-methods


【解决方案1】:

至少静态方法的调用不需要传递“self”参数,所以-是的,它有一个优势。

【讨论】:

  • 你能解释一下不需要在参数列表中添加“self”是一个优势吗?打字少了4个字符。但是您需要在顶部添加“@staticmethod”注释,这样可以增加字符数。
  • 应该将“self”参数的值传递给每个方法调用,因此在每个堆栈帧中都需要额外的空间。我不认为它会对性能产生巨大的影响,但在某些情况下,堆栈消耗的增加可能是有意义的。特别是对于递归。
猜你喜欢
  • 2011-01-27
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 2014-04-11
  • 2012-06-10
  • 1970-01-01
  • 2012-06-29
相关资源
最近更新 更多