0
我有在python類:修改成員變量的類對象外,並具有在類對象變化
class A:
def __init__(self):
self.obj = None
def setObj(self, npArray):
self.obj = npArray
def getObj(self):
return self.obj
在另一個Python腳本我實例化的類A的一個對象,並設置「OBJ」和再賺一些別的地方
objOfA.setObj(npArray)
''' Some operations '''
objOut = objOfA.getObj()
''' More operations '''
np.append(objOut,[0.25]) ## Here np.append is used just as an example. There can be many other algebraic operations.
''' operations using objOfA '''
在操作
這裏使用上述objOfA,我想看看修改後的數組(0.25追加)。
在C++中這是很有可能使用指針或引用。但我很難在python中這樣做。我瞭解python如何以及何時使用對象的引用。我的問題是,只要我做
objOut = objOfA.getObj()
我得到的數組的一個副本而不是引用到objOut
。
有沒有一種方式,我可以做到這一點。
預先感謝您。
謝謝你的回答......我用np.append作爲操作的例子。可以有其他的數學運算。還有關於吸氣和吸氣的功能。是的我同意。還有一些情況是obj通過類對象的層次結構傳遞。它會在這些情況下工作嗎?也是的,我依賴於numpy數組。 – AdityaG
通常避免expresions像'X =樂趣(X)','X = X -...';使用像'x - = ...',x [:] = ...'。還要了解視圖和副本之間的區別。而且你不能在原地生長陣列。測試之類的東西'ID(X)'和'X .__ aray_interface__' – hpaulj
是的,這並不重要,如果它的'objOut.obj'或'objOut.obj.and.more.hierachies.obj'。這真的取決於操作。改變numpy數組維數的事物通常不會就地修改數組,而numpy數組上的數學運算可以在原地進行(使用'+ ='或'* ='等賦值運算符)。 – poke