导入使用其他文件中的变量的函数

时间:2017-06-19 09:51:45

标签: python-3.x

我不确定如何正确地问这个,但我有一个lib.py文件,其中我有一小段代码

def dPrint(text):
    global debug
    if debug == True:
        print(text)

因此,当我执行from lib import *时,它无法正常工作,因为它无法找到变量debug。有没有办法让它在我的主文件中使用调试变量?

1 个答案:

答案 0 :(得分:1)

您的问题有点难以理解,因为它没有提供最低限度的工作示例。就目前而言,我认为该片段是lib.py中存在的所有内容。如果您希望debug中的变量名lib.py为全局变量,则应将代码重新排列为

global debug
debug = False
def dPrint(text):
    if debug == True:
        print(text)

这样,当您导入lib.py时,它会将debug变量解释为全局,其默认值为False。您可以按照以下方式更改此值:

import lib
lib.debug = True
lib.dPrint('foo')

要从lib.py导入所有内容并仍然能够控制lib.py debug变量的值,您可以在{{1}中定义toggle_debug函数如下

<强> lib.py

lib.py

其他脚本

debug = False
def dPrint(text):
    if debug == True:
        print(text)

def toggle_debug(forced_value=None):
    global debug
    if forced_value is None:
        debug = not debug
    else:
        debug = forced_value