模块中的布尔值

时间:2019-05-31 17:40:19

标签: python module scope boolean

#main
import booleanChange from module
myBool = False
booleanChange()
if myBool:
    print("Hello World")
#module
def booleanChange():
    myBool = True
#expect
##Hello World

如果我有main.py和module.py。有没有一种方法可以在运行函数myBool之后不返回myBool的情况下将booleanChange()初始化为True?我假设我的问题是在Python中,导入函数不仅是复制和粘贴,而且模块是完全不同的作用域。

3 个答案:

答案 0 :(得分:0)

模块不仅是一个不同的作用域,而且其中的功能是一个不同的作用域。您有两个变量名称myBoolmodule中的一个在模块的其余部分甚至都不可见。如果要具有模块级变量,则需要正确寻址,例如:

# main

import module
module.myBool = False
booleanChange()
if module.myBool:
    print("Hello World")

# module
myBool = True      # Not needed, but illustrates the scope.
def booleanChange():
    global myBool
    myBool = True

答案 1 :(得分:0)

您需要将myBool设置为全局变量,然后将其导入。

模块:

def booleanChange():
    global myBool
    myBool = True

主要:

from module import booleanChange, myBool
myBool = False
booleanChange()
if myBool:
    print("Hello World")

答案 2 :(得分:0)

要仅检查列表中的值,请执行以下操作:

1 in l_d_l['a']