Python“header.py”模块

Posted

技术标签:

【中文标题】Python“header.py”模块【英文标题】:Python "header.py" module 【发布时间】:2013-12-14 11:18:47 【问题描述】:

我已经将一个包含一堆方法的大型 python 文件拆分为几个较小的文件。但是,有一个问题:我希望所有这些小文件都导入几乎相同的模块。

我尝试创建一个header.py 文件,我刚刚在其中粘贴了公共标头。然后我在其他的上添加了from header import *,但在我看来,这只会导入header.py 上列出的方法,而不是实际模块 .

我知道一种解决方案是找出每个小文件所依赖的库,但没有更快的方法吗?

【问题讨论】:

恕我直言,这是相当糟糕的做法。你可以按照@aIKid 的建议去做,但你应该努力只导入你在模块中需要的东西。这不是 C 语言,你有一个通用的原型(头文件)文件 :) 当然,我认为这不是一个优雅的解决方案,因为我在任何地方都找不到任何支持该解决方案的文档。我想我会只导入每个模块中需要的东西。谢谢:) 【参考方案1】:

将 .py 文件中的所有依赖项都列在导入语句中是非常重要和有用的。这样我们就可以轻松追溯所有使用的模块的来源。

假设您在某处使用module1.method 并想检查此method 的来源,您总能在顶部的导入语句中找到。这就是为什么from module1 import * 非常不受欢迎的原因。

我们可以以简洁的方式满足您的需求。

在你的 header.py 中

import module1
import module2

在您的其他文件中,

import header

header.module1.method() #make all the function calls via header module.

如果您认为由于函数名称较长而使您的代码编写乏味,那么可以试试这个。

import header as h
h.module1.method()

但请确保您的 python 文件中没有无法追踪的模块。

【讨论】:

是的,我试图避免重写较小的模块,但我想这是不可避免的。感谢优雅的解决方案:)

以上是关于Python“header.py”模块的主要内容,如果未能解决你的问题,请参考以下文章

在cmd命令行执行python脚本出现错误提示

Python基础(11)_python模块之time模块rando模块hashlibos模块

python模块自学

python库、包、模块概念辨析

Python必学的模块都有哪些?

Python基础(12)_python模块之sys模块logging模块序列化json模块pickle模块shelve模块