在顶部导入Python函数或在代码中调用它们

时间:2016-10-25 16:10:52

标签: python architecture

在文件顶部导入函数是否更好/更pythonic如下:

from file import f1, f2

并致电

def do_something():
   f1()
   etc....

或者只是导入包并在必要时调用它们

import file
...
def do_something():
   file.f1()
   etc....

2 个答案:

答案 0 :(得分:2)

根据PEP 8 -- Style Guide for Python Code

  

导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前。

所以你的第一个例子更好,更“pythonic”。

答案 1 :(得分:2)

import语句本身应该位于文件的顶部(当然),但是您使用import somemodule还是from somemodule import f1, f2取决于您。第二种形式涉及较少的输入,但第一种形式使代码更具可读性,因为它使得它明确地来自导入的名称,并且我想这使它更加Pythonic,特别是当你导入很多名字时来自各种不同的模块。

良好的妥协是import somemodule as变体,例如

import numpy as np
import tkinter as tk

这对输入名称的长度产生的影响微乎其微,但仍然清楚显示每个导入名称的来源。

说了这么多,当from somemodule import f1, f2是一个众所周知的标准模块somemoduleitertools时,random的代码没有问题。您的代码应该熟悉这些名称。但我不太高兴看到这种形式用于更模糊的模块。