Prev: Cross-platform way to retrieve the current (Operative system)DNS server IP address in python
Next: ANN: Wing IDE 3.2.6 released
From: Paul Kölle on 30 Apr 2010 10:17 Am 30.04.2010 13:05, schrieb Stefan Krastanov: > Hello all, [snipp] > Here is the problem: > I have a class (call it Data) that has a number of NumPy arrays and some > methods that get useful information from the arrays (math stuff). > I have two other classes (called Viewer1 and Viewer2) (they are subclasses > of QAbstractTableModel but that's not important). > I am working in my code with one instance of each class. Viewer1 and Viewer2 > must be able to call methods from the Data instance, but as the instance of > Data is constantly updated, I cannot just copy it. Why do you think the data is copied? Both viewers will hold a reference to the same data object: Type "help", "copyright", "credits" or "license" for more information. >>> class d(object): .... a = 1 .... b = 2 .... c = 3 .... >>> d1 = d() >>> d1.a 1 >>> class view1(object): .... def __init__(self, data): .... self.data = data .... def data(self): .... return self.data .... >>> class view2(object): .... def __init__(self, data): .... self.data = data .... def data(self): .... return self.data .... >>> v1 = view1(d1) >>> v2 = view2(d1) >>> v2.data.b 2 >>> v2.data.b = 4 >>> v2.data.b 4 >>> v1.data.b 4 >>> hth Paul |