我正试图找到一种有效的方法来初始化模块,这样我在不同文件中的函数就可以使用它们。
以下是文件夹结构的示例
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 .. import
main。对我来说,这似乎不是一个最佳实践,所以有更有效的方法吗?
Tomerikoo的答案是有效的。
实用程序.py
import time
def utilities_function1():
print(time.localtime())
def utilities_function2():
print(time.localtime()+1)
我在顶部导入一次时间模块,随后的功能将能够使用它
其他答案
经过进一步的研究,我找到了关于导入模块的最佳实践的答案,当我有一个基于其他堆栈post1和post2的父子文件夹时。
我们需要在每个python文件中导入我需要的模块,无论文件位于何处(例如:父文件夹或子文件夹(。
此外,Python只在需要时初始化模块(也就是一次(,所以我不需要担心意外地导入模块太多次,至少为了效率。