Python-Klassenfabrik
- So erstellen Sie eine Klassenfabrik in Python
-
Verwenden Sie das Schlüsselwort
class
, um eine Klassenfabrik in Python zu erstellen -
Verwenden Sie das Schlüsselwort
type
, um eine Klassenfabrik in Python zu erstellen
Eine einfache Funktion, deren Zweck darin besteht, eine Klasse zu erstellen und zurückzugeben, wird als Klassenfabrik bezeichnet. Eine Klassenfabrik, die eines der mächtigen Muster ist, wird in Python ausgiebig genutzt.
In diesem Lernprogramm werden die verschiedenen Möglichkeiten zum Erstellen einer Klassenfactory veranschaulicht.
So erstellen Sie eine Klassenfabrik in Python
Es gibt zwei Methoden zum Entwerfen einer Klassenfabrik; Einer erstellt eine Klasse während der Codierungszeit, während der andere eine Klasse während der Laufzeit erstellt.
Ersteres verwendet das Schlüsselwort class
, letzteres das Schlüsselwort type
. Beide Methoden werden im folgenden Artikel erklärt und gegenübergestellt.
Verwenden Sie das Schlüsselwort class
, um eine Klassenfabrik in Python zu erstellen
Wir können eine Klassenfabrik mit dem Schlüsselwort class
erstellen. Dazu müssen wir eine Funktion erstellen und eine Klasse innerhalb der Definition der Funktion halten.
Der folgende Code verwendet das Schlüsselwort class
, um eine Klassenfabrik in Python zu erstellen.
def ballfun():
class Ball(object):
def __init__(self, color):
self.color = color
def getColor(self):
return self.color
return Ball
Ball = ballfun()
ballObj = Ball("green")
print(ballObj.getColor())
Der obige Code liefert die folgende Ausgabe.
green
Verwenden Sie das Schlüsselwort type
, um eine Klassenfabrik in Python zu erstellen
Das Schlüsselwort type
ermöglicht die dynamische Erstellung von Klassen. Wir müssen das Schlüsselwort type
verwenden, um eine Klassenfabrik in Python zu erstellen.
Wir sollten jedoch beachten, dass bei Verwendung des Schlüsselworts type
die Funktionen nur noch im Namensraum verbleiben, rechts bei der Klasse.
Der folgende Code verwendet das Schlüsselwort type
, um eine dynamische Klasse in Python zu erstellen.
def init(self, color):
self.color = color
def getColor(self):
return self.color
Ball = type(
"Ball",
(object,),
{
"__init__": init,
"getColor": getColor,
},
)
ballGreen = Ball(color="green")
print(ballGreen.getColor())
Der obige Code liefert die folgende Ausgabe.
green
Das Schlüsselwort type
ermöglicht dynamische Klassen und effektive Erstellung zur Laufzeit und Nachteile. Wie Sie im obigen Code sehen können, sind sowohl die Funktionen init
als auch getColor
im Namensraum unübersichtlich.
Zudem geht auch die Aussicht auf Wiederverwendbarkeit dieser Funktionen verloren, wenn die dynamischen Klassen mit dem Schlüsselwort type
erstellt werden.
Eine einfache Lösung hierfür wäre die Einführung einer Klassenfabrik. Es hilft in beide Richtungen, da es das Durcheinander im Code verringert und die Wiederverwendbarkeit der Funktionen fördert.
Der folgende Code verwendet das Schlüsselwort type
, um eine Klassenfabrik in Python zu erstellen.
def create_ball_class():
def init(self, color):
self.color = color
def getColor(self):
return self.color
return type(
"Ball",
(object,),
{
"__init__": init,
"getColor": getColor,
},
)
Ball = create_ball_class()
ballObj = Ball("green")
print(ballObj.getColor())
Der obige Code liefert die folgende Ausgabe.
green
Nachdem wir nun gesehen haben, wie eine Klassenfabrik erstellt wird, ist es auch wichtig zu unterscheiden, wann das neu erlernte Konzept der Klassenfabrik verwendet werden sollte und wann nicht.
Im Allgemeinen sind Class Factories nützlich, wenn wir nicht wissen, welche Attribute zugewiesen werden sollen, wenn die Codierung erfolgt.
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn