从同一类的另一个函数访问变量
from folder_exp import my_tcommands as t
class Gravity(EarthG):
def __init__(self):
super(Gravity, self).__init__()
def check(self):
original = t.get_gravity()
print "Original gravity from the function:", original
my_gravity = 9.888
t.set_gravity(my_gravity)
def verify(self):
def verify(self):
t.set_gravity(original)
我需要在 verify
这个地方加载原始重力值,方法是用 t.set_gravity(original)
,但是我在 check
函数里已经用 t.set_gravity(my_gravity)
重写了重力值。所以如果我再调用 t.get_gravity
,得到的就是 9.888,而不是原来的值
。
我该怎么从 check
里访问到 original
,这样我就可以在 verify
方法里进行后续操作。
1 个回答
1
当你使用的名字 original
以及它所指向的对象在外层函数返回后就会消失。如果你想在之后的地方继续使用它,就得给它起个新名字,这样它就不会那么快失效。
一个方便的存储位置就是把它放在对象里面:
def check(self):
self.original = t.get_gravity()
print "Original gravity from the function:", self.original
my_gravity = 9.888
t.set_gravity(my_gravity)
之后再调用的时候就能看到这个对象了:
def verify(self):
t.set_gravity(self.original)