Reputation: 81
I have a situation similar to this:
x = 10
y = 20
z = 30
def check_x():
global x
if something:
x = x + 10
def check_y():
global y
if something:
y = y + 15
def check_z():
global z
if something:
z = z + 20
How can I achieve to refactor in order to have a situation lik this:
x = 10
y = 20
z = 30
def check(var, adding):
global ??
if something:
?? = ?? + adding
check(x, 10)
check(y, 15)
check(z, 20)
Basically, I can't refer to a given global variable in the general function.
Upvotes: 3
Views: 44
Reputation: 15872
You can access the globals()
dict, and pass a str as argument:
>>> x = 10
>>> def check_x(glb, adding):
if glb in globals():
globals()[glb] += adding
>>> check_x('x', 10)
>>> x
20
Upvotes: 3