Seite 1 von 1

Funktionsparameter mit Vordefiniertem Wert

Verfasst: Dienstag 5. April 2011, 16:01
von FabianB
Hallo,

ich habe folgendes Problem:
Ich möchte einem Funktionsparameter einen Standard Wert vorgeben. Bei dem Wert soll es sich nun nicht um eine Konstante handeln sondern um ein Attribut des Objekts, welches über den Konstruktor definiert wird!
Mein Versuch sieht folgernder Maßen aus:

Code: Alles auswählen

class meineKlasse:
    
   def __init__(self):
      self.PS = 1
      pass
    
   def meineFkt(self, da=self.PS):
      print da
      
meinObjekt = meineKlasse()
meinObjekt.meineFkt()
Der Interpreter meldet bei dieser Variante einen Fehler ("self" ist nicht definiert!)
Lasse ich das "self" weg bekommt ich einen hnlichen Fehler ("PS" ist nicht definiert!)

Nun habe ich keine Idee wie ich mein Problem umsetzten könnte! Hat mir jemand einen Tipp?
Falls ich hier völlig absurde Sachen machen will, währe ich für Erklärungen sehr dankbar!

Gruß Fabi

Re: Funktionsparameter mit Vordefiniertem Wert

Verfasst: Dienstag 5. April 2011, 16:04
von Hyperion
FabianB hat geschrieben:Hallo,

ich habe folgendes Problem:
Ich habe es gelöst. s.u.

Code: Alles auswählen

# gelöscht
# jetzt hast Du wohl kein Problem mehr...
... :mrgreen:

SCNR

Mal im Ernst: Du musst schon beschreiben, was genau Dein Problem ist! Was soll der Code bewirken, was klappt nicht, gibt es einen Fehler, wenn ja welchen, usw. Steht auch alles in der FAQ :-)

Re: Funktionsparameter mit Vordefiniertem Wert

Verfasst: Dienstag 5. April 2011, 16:09
von FabianB
.... tja der Post war wohl nch nicht fertig und ich habe mich wohl verklickt!!!


Hyperion hat geschrieben:
FabianB hat geschrieben:Hallo,

ich habe folgendes Problem:
Ich habe es gelöst. s.u.

Code: Alles auswählen

# gelöscht
# jetzt hast Du wohl kein Problem mehr...
... :mrgreen:

SCNR

Mal im Ernst: Du musst schon beschreiben, was genau Dein Problem ist! Was soll der Code bewirken, was klappt nicht, gibt es einen Fehler, wenn ja welchen, usw. Steht auch alles in der FAQ :-)

Re: Funktionsparameter mit Vordefiniertem Wert

Verfasst: Dienstag 5. April 2011, 16:12
von Darii
FabianB hat geschrieben:Ich möchte einem Funktionsparameter einen Standard Wert vorgeben. Bei dem Wert soll es sich nun nicht um eine Konstante handeln sondern um ein Attribut des Objekts, welches über den Konstruktor definiert wird!
Ja das geht nicht, da self.PS schon zur Definition der Methode bekannt sein müsste, also musst du das Attribut später abfragen.

Code: Alles auswählen

class ...
    def function(self, param=None):
        if param is None:
            param = self.attribute

Re: Funktionsparameter mit Vordefiniertem Wert

Verfasst: Dienstag 5. April 2011, 16:15
von Hyperion
Sorry, das konnte ich ja nicht wissen ;-)

Vielleicht kurz noch eine Anmerkung zur Namensgebung: Klassennamen werden laut PEP8 in "CamelCase" geschrieben, Funktionen idR "klein_und_mit_bindestrichen".

Re: Funktionsparameter mit Vordefiniertem Wert

Verfasst: Dienstag 5. April 2011, 16:24
von FabianB
Danke