2016-07-19 70 views
0

我有一個主腳本,我正在導入另一個模塊,其中有一個類。當我實例化類時,其中一個參數是y,因此我在__init__方法中有一個等效的self.y = y。現在問題是,在主腳本中我有一個for循環,它改變了y的值,並從同一個類中調用方法'live_plotting'。我通常必須再次輸入y作爲參數,並在該方法內部有另一個self.y = y。這不是很整潔,有沒有更新self.y跨模塊的方法,而不必再次作爲參數傳遞?我想過使用指針,但顯然一切都是Python中的指針。任何人都可以提供其他解決方案如何在模塊Python中更新變量值?

+0

我們贏了無法幫助你解決這樣一個模糊的問題。提供迄今爲止編寫的代碼,預期的輸入和輸出以及爲什麼不起作用的描述。 –

+0

@BenjaminHodgson我不能提供整個代碼,因爲它太多了。基本結構就在那裏,我提出了一個關於更新模塊變量而不是我的代碼的問題。 – marjak

+0

此外代碼需要matplotlib的知識,所以一個普通程序員不會理解它。所以我問一個關於模塊的一般問題。 – marjak

回答

2

我不確定它是否是你想要的,但是從我的理解中,你想更新self.y的值而不使用方法?

這將通過執行

object_name.y = new_value 

其中object_name是你給你的類的實例,看到自我在__init__聲明變量屬性屬於類的該實例的名稱來完成。

0

從我所瞭解的,mutator arn't你在找什麼。 增變器是一個類中的一個函數,它訪問一個屬性並修改它的值。

我想在你的代碼中,你想使用y,就好像self.yy在哪裏相互關聯。但是,當您將y作爲函數的參數時,self.y = y函數中的y是您作爲參數傳遞的y的一個複本。那麼self.y = y取複製的y的值並將其存儲在self.y中。

instanciating您的對象後:

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

或與該門課程的突變:

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

然後在你的主,當你想修改Y:

my_instance.set_y(value)