当我在类(__len__
,__contains__
,__iter__
)内实现魔术/特殊方法时,通常将它们放置在我实现的其他方法之上(紧随__init__
之后) )或以下?另外,通常将这些魔术方法放入一个顺序吗?按字母顺序还是...?
答案 0 :(得分:0)
没有预定义的样式,因此您应遵循所从事项目/团队的标准。
一个好主意是按逻辑对它们进行分组,以使您的代码意图更易于理解。
也就是说,这个问题主要是基于观点的,这里是话题,所以我投票决定将其关闭。
答案 1 :(得分:0)
如果PEP文档中未涵盖该内容,则没有社区“标准”。 这些决定可以与将要阅读和维护您的代码的任何人一起解决。
在我最近的项目中,我们按照增量开发的顺序排列它们:首先放置整理方法(例如__init__
),然后放置对调试有用的方法(例如__repr__
),然后是基本比较器(__lt__
,__contains__
),迭代支持,按类型特定的顺序继续进行。