Ich mache Klassen, die ähnlich sind, aber mit unterschiedlichen Funktionen, abhängig von der Verwendung der Klasse.Hinzufügen von Methoden in __init __() in Python
class Cup:
def __init__(self, content):
self.content = content
def spill(self):
print(f"The {self.content} was spilled.")
def drink(self):
print(f"You drank the {self.content}.")
Coffee = Cup("coffee")
Coffee.spill()
> The coffee was spilled.
Jedoch wird bei der Initialisierung eines Objekts bekannt, ob oder ob nicht der Becher verschüttet werden oder getrunken. Wenn es viele Becher gibt, müssen nicht alle beide Funktionen haben, da nur einer von ihnen verwendet wird. Wie kann ich während der Initialisierung eine Funktion hinzufügen?
Intuitiv sollte es so etwas wie diese, aber dies offenbar nicht funktioniert hat:
def spill(self):
print(f"The {self.content} was spilled.")
class Cup:
def __init__(self, content, function):
self.content = content
self.function = function
Coffee = Cup("coffee", spill)
Coffee.function()
> The coffee was spilled