【发布时间】:2015-06-19 07:53:54
【问题描述】:
根据我的阅读,类方法与静态方法基本相同,但有一些例外,但具有提供类指针的优势。
因此,如果在类中定义了非实例方法,是否真的有任何理由使用静态方法而不是类方法?
编辑:因为你们中的一些人很快就会将此视为与另一个问题的重复。这不是关于类和静态方法之间区别的问题。而是在绝大多数情况下,当它们的功能重叠时,如何在两者之间做出决定是一个问题。
编辑#2:我问的原因是我正在重构其他人的一些现有代码。具体来说,有些子类与父类共享相同的模块,我打算将它们移动到单独的模块中。发生这种情况时,需要修复静态方法中对类外常量的引用。我可以通过以下方式之一来实现 1.从父模块导入所有常量 2. 将所有常量移至父类内部,将所有子静态方法更改为类方法 3. 添加“父类”。在每次引用常量之前
我个人想做#2,因为它避免了命名空间污染,这也是我问这个问题的原因。主要是风格问题。希望这提供了足够的上下文。
【问题讨论】:
-
你读过THIS吗?
-
我没有复制副本,因为我知道您想询问 WHEN,但是因为您没有提到 WHAT 你有阅读,所以我发布评论只是为了提供帮助。
-
不用担心。我知道你是想帮忙,虽然帽子确实有点刺激我的肾上腺素。
-
哈哈,如果您阅读我的其他帖子或 cmets,请保持冷静,您知道我从来没有冒犯过。在不提及您所阅读的内容的情况下,我认为我们大多数人都会发表类似的评论来证明您的“基于我所阅读的内容......”。 @erewok 的评论很重要,你的代码是与 webapps 相关的还是只是一般的?我认为这确实有所作为。
-
我正在开发一个桌面应用程序。我的团队的惯例是,如果我们需要类指针,我们使用类方法,如果不需要,我们使用静态方法。我只是想验证该标准中是否缺少任何内容。
标签: python static-methods class-method