导入另一个模块或实现现有的调用

时间:2016-09-26 11:48:30

标签: python

这可能是一个主观问题,所以我理解它是否会被关闭,但自从我开始以更严肃的方式开始学习python之后,这就是我一直在想的事情。

是否有普遍接受的最佳做法'关于是否导入一个额外的模块以更干净地完成任务比避免呼叫和解决它更好?'

例如,我对我最近编写的脚本有一些反馈意见,建议我可以用glob.glob()调用替换下面的代码。我当时避免使用它,因为这意味着添加另一个对我来说似乎不必要的导入(以及过滤线条的实际流程与我的任务思考过程相关)。

headers = []
with open(hhresult_file) as result_fasta:
    for line in result_fasta:
        if line.startswith(">"):
            line = line.split("_")[0]
            headers.append(line.replace(">",""))

同样,我决定稍后在脚本中使用os.rename()调用来移动某些文件,而不是导入shutil

这里有正确答案吗?是否存在与调用其他模块和创建更多依赖关系相关的任何开销(例如,假设该模块不是内置的python模块),而不是编写一个稍微混乱的模块。代码使用脚本中已有的模块?

1 个答案:

答案 0 :(得分:1)

这是一个相当广泛的问题,但我会试着简洁地回答它。

没有真正的最佳实践,但回收已经由他人编写的代码通常是个好主意。如果您在导入的代码中发现了一个错误,那么比在您自己的代码中找到错误更有利,因为您可以向作者提交一张票并为潜在的一大群人修复它。

在进行其他导入时,一定要考虑,主要是当它们不属于Python标准库时 有时候添加一个有点过于“神奇”的软件包会让代码更难理解,因为它是另一个需要查看才能理解正在发生的事情的库或文件,而不是只有几行可能不那么复杂作为第三方图书馆,但无论如何都要完成工作。

如果你可以逃脱不进行额外的进口,你可能应该这样做,但如果能节省大量的时间和头痛,那么可能值得进口一些预先编写的东西以解决你的问题。面对。

这是一个必须持续考虑的问题。