首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Python类有什么好处吗?

使用Python类有什么好处吗?
EN

Stack Overflow用户
提问于 2009-01-18 22:09:07
回答 6查看 6.7K关注 0票数 20

我有一个充满静态方法的Python类。在类而不是原始函数中打包这些函数的优缺点是什么?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-01-18 22:12:04

一个也没有。这就是模块的用途:对相关函数进行分组。使用一个充满静态方法的类会让我对Javaitis感到畏缩。只有当函数是类的一个组成部分时,我才会使用静态函数。(实际上,无论如何我都可能想使用类方法。)

票数 35
EN

Stack Overflow用户

发布于 2009-01-18 22:17:47

不是的。最好是让它们成为函数,如果它们是相关的,就把它们放在自己的模块中。例如,如果您有一个如下所示的类:

代码语言:javascript
复制
class Something(object):

    @staticmethod
    def foo(x):
        return x + 5

    @staticmethod
    def bar(x, y):
        return y + 5 * x

那么最好有一个像这样的模块,

代码语言:javascript
复制
# something.py

def foo(x):
    return x + 5

def bar(x, y):
    return y + 5 * x

这样,您就可以通过以下方式使用它们:

代码语言:javascript
复制
import something
print something.foo(10)
print something.bar(12, 14)

不要害怕名称空间。;-)

票数 17
EN

Stack Overflow用户

发布于 2009-01-19 00:16:33

如果您的函数相互依赖或全局状态,请同时考虑第三种方法:

代码语言:javascript
复制
class Something(object):
    def foo(self, x):
        return x + 5

    def bar(self, x, y):
        return y + 5 * self.foo(x)

something = Something()

使用此解决方案,您可以单独测试一个函数,因为您可以重写另一个函数的行为或使用构造函数注入依赖项。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/456001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档