Code: Alles auswählen
#!/usr/bin/python
import numpy as n #Arrays
from copy import deepcopy
class Datenblatt(object):
def __init__(self,zeilen,spalten):
self.hintergrund = n.ones((zeilen+2,spalten))
#
self.zeilen = zeilen
self.matrix = self.hintergrund[:zeilen,:]
self.zusatz = self.hintergrund[zeilen:zeilen+2,:]
def __deepcopy__(self,memo):
_kopie = deepcopy(super(Datenblatt,self),memo)
_kopie.matrix = _kopie.hintergrund[:_kopie.zeilen,:]
_kopie.zusatz = _kopie.hintergrund[_kopie.zeilen:_kopie.zeilen+2,:]
return _kopie
def bearbeite(self):
self.hintergrund *= -1
def zeige(self):
print "\n\nStand der Gesamtdaten:"
print '\n', self.hintergrund
print '\n\n', self.matrix, '\n\n', self.zusatz
muster = Datenblatt(zeilen=4,spalten=8)
#
#blatt = muster #funktioniert
blatt = deepcopy(muster) #funktioniert jetzt auch, aber nur wegen __deepcopy__
blatt.zeige()
#
blatt.matrix[1,1] = -2
blatt.zusatz *= 2
blatt.matrix += 5
blatt.zeige()
#
blatt.bearbeite()
blatt.zeige()
Bei NumPy selber konnte ich nichts melden, das ist eine 99% geschlossene Gesellschaft, da kommen nur Hacker oder Insider durch (bitte als Lob für dieses Python-Forum auslegen).