将信息传递给导入的Python模块

时间:2018-01-21 00:22:45

标签: python import module initialization

我希望我可以根据主程序中选择的选项让我的模块初始化两种不同的方式。一厢情愿的代码:

主程序:

<magic variable> = True
import mymodule

mymodule.py:

def start1():
    ...
def start2():
    ...
if <magic variable>: start1()
else: start2()

有没有办法将魔术变量放在导入的模块可以找到的地方?没有创建另一个模块?

2 个答案:

答案 0 :(得分:3)

我解决这个问题的方法是在导入的模块中创建一个用于初始化的公共函数。然后,用户将传入标志以选择某种初始化样式:

<强> mymodule.py

def init(flag=True):
    if flag:
        start1()
    else:
        start2()

def start1():
    print('start1 called')

def start2():
    print('start2 called')

<强> main.py

import mymodule
mymodule.init() # Or False could be passed in, depending on the users choice.

答案 1 :(得分:1)

如果你想在一个模块中有两种方法,你需要主程序来初始化它

<magic variable> = True
import mymodule
if <magic variable>:
    mymodule.start1()
else:
    mymodule.start2()