#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中,导入函数不仅是复制和粘贴,而且模块是完全不同的作用域。
答案 0 :(得分:0)
模块不仅是一个不同的作用域,而且其中的功能是一个不同的作用域。您有两个变量名称myBool
; module
中的一个在模块的其余部分甚至都不可见。如果要具有模块级变量,则需要正确寻址,例如:
# 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']