Python - 我应该将辅助函数放在类内部还是外部?

发布于 2024-12-11 16:35:59 字数 1431 浏览 3 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

诺曦 2024-12-18 16:35:59

当决定在哪里放置辅助函数时,我问的问题是:“它只适用于这个类吗?”如果它可以在其他地方提供帮助,那么它就在模块级别;如果它确实只适用于此类,那么它会使用 staticmethod (不需要类数据来完成其工作)或 classmethod (使用某些类,但是不是实例,而是完成其工作的数据)。

另一个Python代码检查器是pyflakes

When deciding where to put helper functions the question I ask is, "Is it only for this class?" If it can help in other places, then it goes at the module level; if it is indeed only for this class, then it goes in the class with either staticmethod (needs no class data to do its job) or classmethod (uses some class, but not instance, data to do its job).

Another python code checker is pyflakes.

阳光下的泡沫是彩色的 2024-12-18 16:35:59

辅助函数可能更适合模块级别而不是类。

如果您不同意这种情况,可以使用 staticmethod 装饰器您可以在类内部的函数上使用它。简而言之,静态方法在同一类的对象实例化之间表现相同。它不依赖于实例数据。

因此,staticmethod 装饰器在函数上呈现行为,使其不采用隐式第一个参数(通常为 self),如文档中所述)。

It's possible that the helper function better fits in at the module level rather than the class.

If you don't agree that this is the case, there is a staticmethod decorator that you can use on functions inside of the class. Simply put, a static method behaves the same between object instantiations of the same class. It does not rely on instance data.

For this reason, the staticmethod decorator renders behavior on the function such that it does not take an implicit first argument (typically self) as stated in the documentation).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文