在存在父子文件夹时导入模块的最佳做法



我正试图找到一种有效的方法来初始化模块,这样我在不同文件中的函数就可以使用它们。

以下是文件夹结构的示例

parent/
main.py
child/
__init__.py
utilities.py

我的脚本有多个依赖于许多其他模块的函数。所以我的计划是:

我从主python文件中导入我需要的模块。

main.py

import time
from child.utilities import *
utilities_function1()
utilities_function2()

使用子函数中的from .. import main从父文件中提取模块。

实用程序.py

def utilities_function1():
from .. import main
print(time.localtime())
def utilities_function2():
from .. import main
print(time.localtime()+1)

然而,我遇到的问题是,我正在为子python文件中的每个函数重复from .. importmain。对我来说,这似乎不是一个最佳实践,所以有更有效的方法吗?

Tomerikoo的答案是有效的。

实用程序.py

import time
def utilities_function1():
print(time.localtime())
def utilities_function2():
print(time.localtime()+1)

我在顶部导入一次时间模块,随后的功能将能够使用它

其他答案

经过进一步的研究,我找到了关于导入模块的最佳实践的答案,当我有一个基于其他堆栈post1和post2的父子文件夹时。

我们需要在每个python文件中导入我需要的模块,无论文件位于何处(例如:父文件夹或子文件夹(。

此外,Python只在需要时初始化模块(也就是一次(,所以我不需要担心意外地导入模块太多次,至少为了效率。

最新更新