def foo(initial_value=0): varholder = [initial_value] # put the value into a list def var_setter(newval): varholder[0] = newval def var_getter(): return varholder[0] return var_setter, var_getter setter, getter = foo() setter(21) getter() # <- would return 21