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!