从同一类的另一个函数访问变量

0 投票
1 回答
724 浏览
提问于 2025-04-19 16:57
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)

撰写回答