gpt4 book ai didi

python - Python中相关函数的分组

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:31 25 4
gpt4 key购买 nike

假设我有一个带有函数 spamham 的模块,它使用函数 eggsfoo

def spam():
eggs()
foo()
...

def ham():
eggs()
foo()
...

现在,eggsfoo 只被 spamham 使用,所以它不会在模块级别公开它们是有意义的。我可以将它们的名称更改为 _eggs_foo 以表明它们供内部使用,但这并不能真正建立 spam 之间的关系, 火腿鸡蛋foo

所以,我可以创建一个容器类来保存这些函数,如下所示:

class SpamHam:

@staticmethod
def _eggs():
...

@staticmethod
def _foo():
...

@staticmethod
def spam():
...

@staticmethod
def ham():
...

但这看起来很粗略,因为我希望用户不要实例化 SpamHam 并且只使用它来调用静态方法。另外,当我只想在其方法之间建立某种关系时,使用类似乎并不正确。

我可以创建一个名为 spamham 的单独模块并将这四个函数放入其中,但是 spamham 确实“属于”他们已经在的模块。

那么,在 Python 中建立这种关系的正确方法是什么?

最佳答案

一般来说,我建议不要将这些东西视为函数之间的特定关系。函数应该是一个独立的代码单元1。我的中心论点是,您不应将 eggs 视为属于 spamhameggs 不应该关心它是否被 spamhambacontoast。重要的是 eggs 有一个尽可能清晰的名称,让您可以立即了解函数的作用2

诀窍是弄清楚你想让外面的人访问哪些功能......这决定了它是eggs(公共(public))还是_eggs(实现细节可能会更改,恕不另行通知),正如您已经提到的那样。

1这并不是说函数不能调用其他函数
2最好是关于函数作用的正确想法...:)

关于python - Python中相关函数的分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22217126/

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