Skip to content

reassign global boolean from a function

i am trying to reassign the value of these booleans from inside of a function and use the reassigned values inside of another function. how do i do that?

booleanA = False
booleanB = False

def choose():
    inPut = input("A or B?: ")
    
    if "A" in inPut:
        booleanA = True
    if "B" in inPut:
        booleanB = True

def mainCode():
    
    if booleanA == True:
        #do something
    if booleanB == True:
        #do something else

Answer

In general, you should avoid trying to do this, as it can make your code harder to understand and debug (see action at a distance).

But, if you’re really sure you want to do this, you need to use the global keyword to tell the interpreter that you’re reassigning to the boolean variables defined outside of the function rather than creating fresh variables:

def choose():
    global booleanA
    global booleanB
    inPut = input("A or B?: ")
    
    if "A" in inPut:
        booleanA = True
    if "B" in inPut:
        booleanB = True