我应该如何在Python的类中安排方法?

发布于 2024-10-23 19:03:58 字数 134 浏览 4 评论 0原文

在 Python 中应该如何(或者说是一种简洁的方式)组织方法?

我总是将 __init__ 方法放在前面,然后是任何其他 __foo__ (你怎么称呼它们?)方法。但随后就会陷入混乱。

How should (or is a clean way) of organising methods in Python?

I always put the __init__ method first, followed by any other __foo__ (What do you call them?) methods. But then it leads into a jumble.

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

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

发布评论

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

评论(4

倾其所爱 2024-10-30 19:03:58

我的偏好是首先放置 __init__ 方法,然后按字母顺序分配其他方法。

My preference is to place the __init__ method first, then assign the other methods alphabetically afterward.

我喜欢这样组织它们:

第一:构造函数 (__init__)

第二:任何其他 __ 方法

第三:大致可以归类为“get”的常规方法

第四:大致可以归类为以下的常规方法“set”

第五:其他所有内容(任何产生除返回值之外的任何内容的方法,即实际输出某些内容或保存到数据库,位于第五类的最后)

如果您始终遵循该模式,你的眼睛会习惯它并且变得容易导航。当然,这样的喜好因人而异。

I like to organize them like this:

First: Constructor (__init__)

Second: Any other __ methods

Third: Regular methods that roughly can be categorized under "get"

Fourth: Regular methods that roughly can be categorized under "set"

Fifth: Everything else (with any methods that produce anything other than a return value--ie. actually output something or save to a database--being at the very end of this fifth category)

If you follow that pattern consistently, your eye gets used to it and it becomes easy to navigate. Of course, preferences like this vary from person to person.

迷路的信 2024-10-30 19:03:58

我使用两种策略:

  • 一个可以折叠代码的编辑器,这样您就不必看到全部代码。
  • 我将大类分成较小的类,每个类只做一件事,然后从这些小块构建我的应用程序。

I use two strategies:

  • an editor that can fold the code so you don't have to see all of it.
  • I split the big classes into smaller ones where each does only one thing and then build my app from those small blocks.
故事灯 2024-10-30 19:03:58

我不确定是否有官方标准,但我总是将 __init__ 方法放在前面,然后是我自己的方法,然后是我计划实现的任何内置函数 (__str__< /code>、__eq__ 等)。我尝试按类似的功能对方法进行分组,并在整个课程中对内置函数进行相同的排序。

I'm not sure if there is an official standard, but I always put the __init__ method first, followed by my own methods, followed by any built ins that I plan on implementing (__str__,__eq__, etc). I try to group methods by similar functionality and order built-ins the same throughout my classes.

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