使用python中的函数全局切换布尔值

使用python中的函数全局切换布尔值,python,function,scope,global,Python,Function,Scope,Global,我的目标是创建一个将全局布尔值作为参数并翻转其值的函数 我正在使用一个函数来启动全局参数 我找到了一种方法来实现我想在我的项目中实现的东西,但是像这样的功能会更有效率 我认为这与范围有关,但我不确定如何在python中正确实现它。。。请帮忙 def boolswitch(boolean: bool): if boolean == True: boolean = False else: boolean = True def initiate():

我的目标是创建一个将全局布尔值作为参数并翻转其值的函数

我正在使用一个函数来启动全局参数

我找到了一种方法来实现我想在我的项目中实现的东西,但是像这样的功能会更有效率

我认为这与范围有关,但我不确定如何在python中正确实现它。。。请帮忙

def boolswitch(boolean: bool):
   if boolean == True:
        boolean = False
   else:
       boolean = True


def initiate():
    global x, y
    x = True
    y = False


initiate()

print(x)
boolswitch(x)
print(x)

print(y)
boolswitch(y)
print(y)

它对参数没有任何作用,我尝试了大多数方法…

如果我重新赋值
x=boolswitch(x)
(向函数添加
return boolean
),它会工作。。。我仍然想知道是否有一种方法可以在不重新分配变量的情况下实现这一点…

这是在类中吗?initiate的目的是什么?initiate的目的是复制我在项目中遇到的类似情况。这不在类中。
boolswitch
无法工作,因为它以值而不是变量作为参数。如果使用
boolswitch(True)
,尝试将
True
的值更改为
False
,这是否回答了您的问题?如果需要这样做,可能需要重新考虑代码结构。也许你的想法是错误的。不过,我们可能需要进一步的细节来帮助您。