相对于其他方法,魔术方法应放在类中的什么位置?

时间:2018-07-13 16:08:59

标签: python

当我在类(__len____contains____iter__)内实现魔术/特殊方法时,通常将它们放置在我实现的其他方法之上(紧随__init__之后) )或以下?另外,通常将这些魔术方法放入一个顺序吗?按字母顺序还是...?

2 个答案:

答案 0 :(得分:0)

没有预定义的样式,因此您应遵循所从事项目/团队的标准。

一个好主意是按逻辑对它们进行分组,以使您的代码意图更易于理解。

也就是说,这个问题主要是基于观点的,这里是话题,所以我投票决定将其关闭。

答案 1 :(得分:0)

如果PEP文档中未涵盖该内容,则没有社区“标准”。 这些决定可以与将要阅读和维护您的代码的任何人一起解决。

在我最近的项目中,我们按照增量开发的顺序排列它们:首先放置整理方法(例如__init__),然后放置对调试有用的方法(例如__repr__),然后是基本比较器(__lt____contains__),迭代支持,按类型特定的顺序继续进行。