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

标签 python architecture

像这样在文件顶部导入函数是否更好/更Pythonic:

from file import f1, f2

并调用为

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

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

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

最佳答案

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

一个很好的折衷方案是import somemodule as变体,例如

import numpy as np
import tkinter as tk

这对导入名称的长度影响最小,但仍然清楚地表明每个导入名称的来源。

话虽如此,当 somemodule 是像 itertools 这样的众所周知的标准模块时,我对 from somemodule import f1, f2 的代码没有任何问题random,因为代码的读者应该熟悉这些名称。但我不太高兴看到这种形式用于更晦涩的模块。

关于python - 在顶部导入 Python 函数或在代码中调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40244801/

相关文章:

python - 使用 python 清理凌乱的 CSV,保存在 Excel 中

python - 在 webfaction 上安装 dropboxpython api(带 ssl)时遇到问题

macos - 使用 i386 arch 而非 x86_64 在 OSX 上构建 libFLAC

rest - Kafka AND REST 用于微服务之间的通信?

Python 使用与 Excel 兼容的开始、结束字符获取范围

c++ - gstreamer 的音乐可视化错误

python - 在 python 中复制时排除一些子文件夹(我使用 copytree)

java - 应用架构 : keeping serial connections open in java

java - RMI:客户端是否必须拥有所有实现或仅拥有接口(interface)?

model-view-controller - 日志记录适合 Model View Controller 架构的什么位置?