覆盖python导入的帮助
在应用程序1中,我有一个settings.py文件和一个utils.py,其中包含以下内容:覆盖python导入的帮助,python,Python,在应用程序1中,我有一个settings.py文件和一个utils.py,其中包含以下内容: from application_one import settings def someFunction(): // do some logic here based on imported settings def someFunction(settings=settings): … # Unmodified code ('settings' refers to the loc
from application_one import settings
def someFunction():
// do some logic here based on imported settings
def someFunction(settings=settings):
… # Unmodified code ('settings' refers to the local 'settings' variable)
然后在第2号申请中,我会:
from application_one.utils import someFunction
在2号应用程序中,我有一个local settings.py,当我导入'someFunction()'时,我希望使用local settings.py,而不是1号应用程序中的文件。那么,如何在第2号应用程序中覆盖导入呢?只需确保在加载了希望重载的功能后导入设置即可
不过,您最好还是完整加载名称空间,因为这样可以防止整个问题的发生。只需确保在加载希望重载的函数后导入设置即可
不过,您最好还是完整加载名称空间,因为这样可以防止整个问题的发生。您可以执行以下操作:
from application_one import settings
def someFunction():
// do some logic here based on imported settings
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()
给出了依赖于设置的结果。您可以执行以下操作:
from application_one import settings
def someFunction():
// do some logic here based on imported settings
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()
给出的结果取决于设置。如果希望它做其他事情,那么someFunction
应该在Application\u One
之外定义。如果它在应用程序\u one
中,则它应该特定于应用程序1。(可能部分或全部application\u one.util
应该从application\u one
包中移出。)如果您想让它做其他事情,那么someFunction
应该在application\u one
之外定义。如果它在应用程序\u one
中,则它应该特定于应用程序1。(可能部分或全部application\u one.util
应该从application\u one
包中移出。)这非常有用。谢谢。这很有帮助。非常感谢。