Python 如果模块本身正在运行,则添加本地导入语句

Python 如果模块本身正在运行,则添加本地导入语句,python,python-2.7,module,Python,Python 2.7,Module,我有一个在我的web应用程序中使用的类,它的参数是从用户传入的。让我们以这个例子为例: class SomeObject(): def __init__(self, param1, param2, logger_object): logger_object.log("init...") self.param1 = param1 self.param2 = param2 现在我需要在headless模式下创建该类的实例(这样我就可以通过Je

我有一个在我的web应用程序中使用的类,它的参数是从用户传入的。让我们以这个例子为例:

class SomeObject():
    def __init__(self, param1, param2, logger_object):
        logger_object.log("init...")
        self.param1 = param1
        self.param2 = param2
现在我需要在headless模式下创建该类的实例(这样我就可以通过Jenkins自动运行它)

所以我知道我可以用这个:

if __name__ == "__main__":
    logger = initialising logger # question about this later
    param1 = "param1"
    param2 = "param2"
    some_object = SomeObject(param1, param2, logger)
我的问题是: 这是正确的方法吗?或者我最好创建一个不同的类并从某个对象继承

此外,当前文件不导入记录器模块,因为它通常不需要它。我不想无缘无故地导入该模块,因此我认为可能会这样做:

if __name__ == "__main__":
    from logger.location import logger
    logger = logger()
    param1 = "param1"
    param2 = "param2"
    some_object = SomeObject(param1, param2, logger)

但我不确定这是否也被推荐。想法/想法?

如果这是一个脚本,从另一个模块导入
SomeObject
,然后创建一个实例,那么这将不是问题。为什么你不能这样做呢?看起来它在同一个文件中更可读。但这就是我最后做的