在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 代码时询问了导入位置。假设您指的是面向对象编程,这是一种设计模式,与导入的正确放置无关。导入保存在模块文件的顶部,以便任何人都可以轻松查看模块具有哪些依赖项。

因此,即使 - 以您的示例为例 - 类 ABC 不要使用 csvpandas,您仍然会将它们放在顶部,因为 @即使某些特定的类不使用,987654327@ 也会使用它们。

【讨论】:

谢谢,但这不是我要求的 也许您应该编辑您的问题,因为您似乎是在特别询问进口应该去哪里。我假设(正如我认为其他人那样)OOP -> 面向对象编程。如果这是真的,那么它与正确放置进口商品无关。如果不是这样,请澄清。 @MikahBarnett 好吧,在我看来它正是你要求的,所以这是正确的答案

以上是关于在OOP代码中导入库的正确位置在哪里[重复]的主要内容,如果未能解决你的问题,请参考以下文章

fig,ax=plt.subplots 不能在正确的位置显示图[重复]

如何在javascript中正确导出[重复]

在 Python 中导入 Tkinter 时出现 ImportError [重复]

Haskell 演示 OOP 设计模式的等价物 [重复]

并发入库面临重复数据的问题

正确导出 node.js 中的类以在其他所需文件中扩展它们[重复]