Python 声明顺序:先类还是先函数?

13

在同一个 python 文件中声明多个函数和类时,是否有首选顺序?是应该先声明函数还是类?有哪些最佳实践方法?

PEP8似乎没有给出任何建议。


6
这是因为具体情况而定- 如果在类定义时需要一个函数,它必须首先出现。超类必须出现在子类之前。装饰器必须在它们所装饰的函数/类之前出现。 - jonrsharpe
1个回答

14

通常情况下,没有优先顺序。根据程序的要求,可能需要按照以下顺序:

  • 您可以使用函数装饰类。然后装饰器函数必须在类之前定义。
  • 另一方面,您可以使用类来装饰函数。那么装饰器类必须在函数之前定义。
  • 您可以将类分配为通过调用函数确定的类属性。同样,此函数必须在类之前定义。

1
此外,类型提示可能需要在函数之前定义类。并且要详细说明@glglgl的第三点:默认kwargs以及属性可以调用对象构造函数和函数,因此可能会创建对任意特定顺序的依赖性。如何处理这些情况的好参考:https://mail.python.org/pipermail/tutor/2009-August/071271.html - Jake Stevens-Haas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接