在OOP代码中导入库的正确位置在哪里[重复]
Posted
技术标签:
【中文标题】在OOP代码中导入库的正确位置在哪里[重复]【英文标题】:Where is the right place to import libraries in an OOP code [duplicate] 【发布时间】:2020-01-15 07:53:08 【问题描述】:假设我有一个用 OOP 编写的用于某些任务的 python 文件。 我的代码中的某些类使用库,例如 pandas、csv ... 可以在 main() 函数之前导入这些库吗? 从技术上讲它有效,但我不确定这是否是正确的方法
class A
class B
class C
import csv
import pandas
def main ():
#pass
if __name__ == '__main__':
main()
【问题讨论】:
也许你应该考虑在这里问这个问题:codereview.stackexchange.com 这与代码无关,因为正如我所说,它有效!但是当你使用需要库的类时,你在哪里导入它们?也许在文件的头部,也许在 main ..之前? 按照惯例,import
行是文件中可选的 shebang (#!/usr/bin/env python
) 行之后的第二个内容。
即使在 oop 代码中?
是的,有关更多详细信息,请参阅 Mikah 在下面链接的导入部分:python.org/dev/peps/pep-0008/#imports
【参考方案1】:
PEP8 专门描述了导入的位置。最好遵循。
导入总是放在文件的顶部,就在任何模块 cmets 和文档字符串之后,模块全局变量和常量之前。
编辑添加:您在编写 OOP 代码时询问了导入位置。假设您指的是面向对象编程,这是一种设计模式,与导入的正确放置无关。导入保存在模块文件的顶部,以便任何人都可以轻松查看模块具有哪些依赖项。
因此,即使 - 以您的示例为例 - 类 A
、B
和 C
不要使用 csv
或 pandas
,您仍然会将它们放在顶部,因为 @即使某些特定的类不使用,987654327@ 也会使用它们。
【讨论】:
谢谢,但这不是我要求的 也许您应该编辑您的问题,因为您似乎是在特别询问进口应该去哪里。我假设(正如我认为其他人那样)OOP -> 面向对象编程。如果这是真的,那么它与正确放置进口商品无关。如果不是这样,请澄清。 @MikahBarnett 好吧,在我看来它正是你要求的,所以这是正确的答案以上是关于在OOP代码中导入库的正确位置在哪里[重复]的主要内容,如果未能解决你的问题,请参考以下文章
fig,ax=plt.subplots 不能在正确的位置显示图[重复]