if I run one of following code variants
var1, var2 ='', ''
globals()['var1']='value1'
print(f'{var1=}, {var2=}')
var1, var2 ='', ''
locals()['var1']='value1'
print(f'{var1=}, {var2=}')
var1, var2 ='', ''
vars()['var1']='value1'
print(f'{var1=}, {var2=}')
all of them will return var1='value1', var2='', which is what I expect, but if I put them into a function, then they will not work any more.
def test():
    var1, var2 ='', ''
    globals()['var1']='value1'
    return var1, var2
def test():
    var1, var2 ='', ''
    locals()['var1']='value1'
    return var1, var2
def test():
    var1, var2 ='', ''
    vars()['var1']='value1'
    return var1, var2
will return ('', ''),any clue about makeing it also work in a function? thanks.
edit: thank to the link above, using globals(), locals(), vars() are often not good idea since locals() and vars() are immutable. For similar purposes, use a dict instead:
def test():
    p = {'var1':'', 'var2':''}
    p['var1']='value1'
    return p['var1'], p['var2']
 
    