我应该如何在Python的类中安排方法?
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我的偏好是首先放置 __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.
我使用两种策略:
I use two strategies:
我不确定是否有官方标准,但我总是将 __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.