Parameterübergabe bei Methoden
Verfasst: Montag 3. Juli 2017, 14:21
Hallo zusammen,
ich habe in einer Klasse zwei Methoden, die fast das gleiche machen. Nur hat eine Methode ein Übergabeparameter mehr. Eine Methode holt sich die Farbe des Objekts über get_color(), die andere bekommt eine andere Farbe übergeben. Diese beiden Methoden wollte ich zusammenfassen, indem ich dem zusätzlichen Parameter self.get_color() als Default übergebe, bekomme das aber leider nicht hin.
Hier ein kurzes Beispiel wie ich mir das vorgestellt hatte:
Als Fehlermeldung erhalte ich:
Kann mir jemand sagen wie man das richtig umsetzt?
Schon mal vielen Dank!
ich habe in einer Klasse zwei Methoden, die fast das gleiche machen. Nur hat eine Methode ein Übergabeparameter mehr. Eine Methode holt sich die Farbe des Objekts über get_color(), die andere bekommt eine andere Farbe übergeben. Diese beiden Methoden wollte ich zusammenfassen, indem ich dem zusätzlichen Parameter self.get_color() als Default übergebe, bekomme das aber leider nicht hin.
Hier ein kurzes Beispiel wie ich mir das vorgestellt hatte:
Code: Alles auswählen
class ColorFields:
def __init__(self, color):
self.color = color
def get_color(self):
return self.color()
def manipulate_color(self, new_color=self.get_color()):
print(new_color)
def main():
color_field = ColorFields('green')
color_field.manipulate_color()
color_field.manipulate_color('blue')
if __name__ == '__main__':
main()
Code: Alles auswählen
Traceback (most recent call last):
File "F:/Python_Code/Tests/self_transfer/main.py", line 1, in <module>
class ColorFields:
File "F:/Python_Code/Tests/self_transfer/main.py", line 8, in ColorFields
def manipulate_color(self, new_color=self.get_color()):
NameError: name 'self' is not defined
Schon mal vielen Dank!