我目前正在将一个项目(以前是大文件)重构为几个单独的 python 文件,每个文件都运行我的应用程序的特定部分。
例如,GUIthread.py
运行 GUI,Computethread.py
执行一些数学运算,等等。
每个线程都包括使用来自导入模块的函数,如 math
、time
、numpy
等。
我已经有一个文件 globalClasses.py
包含我的数据类型等的类定义,每个 .py 文件在开始时导入,按照这里的建议:http://effbot.org/pyfaq/how-do-i-share-global-variables-across-modules.htm .这运作良好。
我想做的是将我所有的 3rdparty 模块导入到 globals
文件中,这样我就可以编写,例如,一次 import math
但是让我所有的项目文件都能够使用 math
函数。
问题:
<强>1。这可能吗?
<强>2。这是个好主意/是很好的 Python 实践吗?
我目前的解决方案就是放
import math
import time
import numpy
...
(加上我正在使用的所有其他模块的导入)
在我项目中每个文件的顶部...但这看起来不是很整洁,而且在将代码块从一个文件移动到另一个文件时很容易忘记移动依赖项的导入语句...
最佳答案
是的,我想有一种更优雅的方法可以节省多余的代码行。假设你想导入一些模块 math, time, numpy
(say),那么你可以创建一个文件 importing_modules
(say) 并将各种模块导入为 from module_name import *
,所以 importing_modules.py
可能看起来像这样:
importing_modules.py
from math import *
from numpy import *
from time import *
主.py
from importing_modules import *
#Now you can call the methods of that module directly
print sqrt(25) #Now we can call sqrt() directly in place of math.sqrt() or importing_modules.math.sqrt().
关于Python 在另一个文件中导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794859/