【问题标题】:Python: make private class methods always static if possible?Python:如果可能的话,让私有类方法总是静态的?
【发布时间】:2016-08-27 02:24:17
【问题描述】:

我知道在其他语言(C#JAVA、...)中,如果可能的话,使用 "private" 方法(使用两个下划线)static 是一种很好的风格。 对 Python 有什么建议吗?

我不想让它们成为静态的,因为它们只是私有的(我不想将它们移动到实用程序类并且它们与性能无关)并且我想避免我的代码与装饰器混淆。另一方面,静态代码分析器告诉我这样做(我想以“Pythonic”方式编写代码)。

【问题讨论】:

  • 我的个人意见 除非需要,否则不要使用静态类方法,无论是私有方法还是公共方法。把事情简单化。除非它是一个非常小的方法,经常被调用,并且被证明会显着减慢整个程序,否则优化每一点都是没有意义的。

标签: python private static-methods


【解决方案1】:

在 python 中没有“私有方法”之类的东西,所有方法都是公共的。唯一告诉您方法不打算公开使用的是它的名称以下划线开头。

如果您的方法没有引用来自 self(类的实例)的任何内容,那么您可以将它们设为静态以优化应用程序的内存使用。

【讨论】:

  • 感谢关于私有和公共方法的评论。因此,我澄清了这个问题。
  • 不太清楚您想要实现什么。如果您不想将这些方法设为静态而不是忽略来自静态代码分析器的警告,
【解决方案2】:

简短的回答是,您几乎不应该在 Python 中使用静态方法。他们是added by mistake

我是想实现类方法,但一开始我不明白 他们并意外地首先实现了静态方法。 - 吉多·范罗森

您几乎可以肯定地使用类方法或实例方法来实现您想要的。

详细了解为什么 Python 中的静态方法大多无用 here

【讨论】:

  • 非常感谢您的回答(包括有用的链接)!
猜你喜欢
  • 1970-01-01
  • 2010-10-07
  • 2022-11-20
  • 2018-01-04
  • 2017-05-23
  • 2017-05-12
  • 2012-01-06
  • 2012-07-14
  • 2017-01-01
相关资源
最近更新 更多