如何更新模块Python中的变量值?

时间:2016-07-19 11:11:50

标签: python

我有一个主脚本,我正在导入另一个带有类的模块。当我实例化类时,其中一个参数是y,因此我在self.y = y方法中有一个等效的__init__。现在的问题是,在主脚本中,我有一个for循环,它会更改y值并调用方法' live_plotting'来自同一个班级。我通常必须再次传递y值作为参数,并在方法中包含另一个self.y = y。这不是很整洁,是否有任何方法可以跨模块更新self.y而无需再次作为参数传入?我想过使用指针,但显然一切都是python中的指针。有人可以提供替代解决方案吗?

2 个答案:

答案 0 :(得分:2)

我不确定它是不是你想要的,但根据我的理解,你想在没有方法的情况下更新self.y的值?

这可以通过执行

来完成
object_name.y = new_value

其中object_name是您为类的实例提供的名称,因为在__init__中声明的 self 变量是属于该类实例的属性。

答案 1 :(得分:0)

根据我的理解,mutator并不是你想要的。 mutator是类中的一个函数,它访问属性并修改它的值。

我认为在您的代码中,您希望使用y,就像self.yy相互关联一样。但是,当您将y作为参数提供给函数时,self.y = y函数中的y是您作为参数传递的y的副本。然后self.y = y获取复制的y的值并将其存储在self.y中。

在实现对象后:

my_instance = class(x,y)
#if you want to modify my_instance.y
my_instance.y = value

或在课堂上使用mutator:

def set_y(self,value):
    self.y=value

然后在你的主要时你想要修改y:

my_instance.set_y(value)