gpt4 book ai didi

python - 将支持功能放在类中的最佳位置在哪里?

转载 作者:太空狗 更新时间:2023-10-30 01:37:55 27 4
gpt4 key购买 nike

在 Python 中,我有一个我构建的类。

但是,有一种方法我应用了一种相当特殊类型的子字符串搜索过程。这个过程本身可以是一个独立的函数(它只需要一个大海捞针字符串),但是在类之外有这个函数感觉很奇怪,因为我的类依赖它。

这方面的典型设计范例是什么?将 myClassName.py 与主类以及类本身之外的所有支持函数放在同一个文件中是典型的吗?还是以牺牲模块化为代价将支持功能嵌入到类中更好?

最佳答案

你可以创建一个staticmethod,像这样:

class yo:
@staticmethod
def say_hi():
print "Hi there!"

然后,你可以这样做:

>>> yo.say_hi()
Hi there!
>>> a = yo()
>>> a.say_hi()
Hi there!

它们可以非静态地使用,也可以静态地使用(如果这有意义的话)。

关于将函数放在哪里...

如果一个类需要一个方法,并且该方法适合执行特定于该类的数据,那么就把它变成一个方法。这就是您想要的:

class yo:
self.message = "Hello there!"
def say_message(self):
print self.message

我的 say_message 依赖于特定于类实例的数据。

如果您觉得除了类方法之外还需要一个功能,请务必继续。在您的脚本中使用更合适的那个。有很多这样的例子,包括在 python 内置函数中。以生成器对象为例:

a = my_new_generator()
a.next()

也可以这样做:

a = my_new_generator()
next(a)

使用哪个更合适,显然哪个更易读。 :)

关于python - 将支持功能放在类中的最佳位置在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30600487/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com