为什么一次使用的导入模块函数被调用两次?

时间:2017-12-07 19:26:07

标签: python-3.x module global-variables

我正在尝试创建包含函数Config options() 模块。该函数为用户提供了特定的选项,并允许他们键入他们选择的选项,然后将键盘输入存储到我所做的其他模块中使用的变量中。 Config 模块的代码是:

def options():
   choices = {'1': 'Graph API Data', '2': 'Comparative Graphs', '3': 'Exit'}
   for choice, option in sorted(choices.items(), key=lambda x: x[0]):
       print(choice, option)
   Choice = eval(input('Select what you want to do'))
   return Choice 

    opt_number = options()

此模块由另一个脚本调用:

import Config as conf

conf.options()

我想将Choice值分配给opt_number,但opt_number = options()会导致配置模块在我的其他脚本只被调用一次时被调用两次。 / p>

我应采取哪些措施来消除调用函数options()两次?

1 个答案:

答案 0 :(得分:1)

您应该阅读有关python modules的更多信息。

您正在导入模块,如果要删除行

,则已通过初始化调用该函数
conf.options()

从你的另一个脚本,这应该停止调用你的函数两次,它只会调用该函数一次。另一种方法是删除行

opt_number = options()

来自模块Config.py。

此外,还存在许多其他方式,例如在另一个函数中使用opt_number = options(),因此在调用该函数之前,它不会调用options()。例如:

def take_action():
    opt_number = options()
只有在另一个脚本中调用opt_number时,Config.py模块中的

才会初始化options()并调用conf.take_action()函数。