在应用程序1中,我有一个settings.py文件和一个utils.py,其中包含以下内容:
from application_one import settings
def someFunction():
// do some logic here based on imported settings
然后在申请号2中,我做了:
from application_one.utils import someFunction
在第2号应用程序中,我有一个本地settings.py,当我导入'someFunction()'时,我想使用本地settings.py而不是来自应用程序no.1的文件。那么如何在申请号2中覆盖导入呢?
答案 0 :(得分:1)
您可以执行以下操作:
def someFunction(settings=settings):
… # Unmodified code ('settings' refers to the local 'settings' variable)
(这允许someFunction()
默认使用应用程序1设置),然后通过发送本地设置从应用程序2中调用它:
someFunction(application2_settings) # Explicit settings sent by Application 2
此方法的一个优点是,应用程序1和2中的代码明确显示someFunction()
给出了依赖于设置的结果。
答案 1 :(得分:0)
只需确保在加载要重载的功能后导入设置。
然而,似乎您最好完整地加载命名空间,因为这样可以防止发生整个问题。