Ich arbeite mit passt Dateien, die ich mit pass.open() aus der Astropy-Bibliothek gelesen. Ich bekomme eine hdu (Header-Dateneinheit), die eine Instanz von astropy.io.fits.hdu.image.PrimaryHDU ist.Initialisieren Instanz mit Mutter Klasse Attribute
Nun möchte ich für ein bestimmtes Projekt an den Daten in diesem HDU arbeiten, indem ich bestimmte Methoden schreibe. Ein guter Weg, es zu tun, dachte ich, schreibt meine eigene Klasse, die eine Unterklasse von PrimaryHDU wäre. Mein neues Objekt würde alle Attribute und Methoden der PrimaryHDU-Instanz sowie Attribute und Methoden enthalten, die ich schreiben werde. Aber ich kann es nicht richtig funktionieren. Wie kann mein neues Objekt alle Attribute und Methoden des übergeordneten Objekts erhalten? Die nächstgelegene ich gekommen, um mit dem folgende Stück Code (mit zum Beispiel ein neuer Methodenaufruf „subtrahieren“):
from astropy.io.fits.hdu.image import PrimaryHDU
class MyHDU(PrimaryHDU):
def __init__(self, hdu):
PrimaryHDU.__init__(self, data=hdu.data, header=hdu.header)
def subtract(self, val):
self.data = self.data - val
Es ist eine Art von Ordnung, aber ich kann sehen, dass mein neues Objekt doesn Habe nicht alle Attribute auf den gleichen Wert wie das ursprüngliche Objekt (hdu) .... was normal erscheint, wenn ich meinen Code tatsächlich anschaue ... aber wie kann ich mein neues Objekt mit allen Attributen des Elternobjekt? Und bin ich richtig, dass meine neue Klasse von der PrimaryHDU-Klasse geerbt wird? Danke
Sind Sie mit Python 2 oder 3? – DeepSpace