Einführung
In einer Zeit, in der die Mystik der Antike weiterhin gedeiht, befindet sich ein verborgenes Tempel, der von Geheimnissen umgeben ist und von einem geisterhaften Wächter bewacht wird. Es wird gesagt, dass dieser Tempel das Geheimnis der Kapselung enthält, eine magische Macht, die die Schätze des Tempels schützt, ähnlich wie die Kapselung in Python die Integrität der Daten eines Objekts schützt. Als aufstrebender Python-Magier ist dein Ziel, diese Geheimnisse zu entdecken, durch die Rätsel des Wächters zu navigieren und die Kunst der Kapselung in Python zu meistern, um das geheime Wissen zu erlangen.
Das Sentinel-Klassen erstellen
In diesem Schritt beginnst du deine Reise, indem du eine Klasse erstellst, die den geisterhaften Wächter repräsentiert. Dies wird dein erster Kontakt mit der Kapselung in Python sein. Dieser Wächter speichert eine Geheimnachricht, die nur über eine bestimmte Methode zugänglich ist, was die Macht privater Attribute demonstriert. Du wirst die Sentinel-Klasse mit privaten Attributen und Methoden erstellen, um ihre Geheimnisse zu schützen.
Öffne jetzt ~/project/sentinel.py in deinem bevorzugten Texteditor und füge den folgenden Code hinzu:
class Sentinel:
def __init__(self):
self.__message = 'The key to encapsulation lies within the walls.'
def reveal_message(self):
return self.__message
guardian = Sentinel()
print(guardian.reveal_message())
In diesem Code ist __message ein privates Attribut, das durch die doppelten Unterstriche gekennzeichnet ist, was bedeutet, dass es nur innerhalb der Klasse selbst zugänglich ist. Die reveal_message-Methode bietet kontrollierten Zugang zum __message-Attribut.
Versuche, den Code auszuführen:
python sentinel.py
Du solltest die geheime Nachricht des Wächters in der Konsole sehen:
The key to encapsulation lies within the walls.
Den Wächter verbessern
Für diesen Schritt wirst du die Sentinel-Klasse um eine Methode erweitern, die die Änderung der Geheimnachricht ermöglicht, aber nur, wenn das richtige Passwort angegeben wird. Dies wird die Kapselung unseres Wächters weiter verbessern und zeigen, wie Daten und Verhalten in einer Python-Klasse kapselt werden können.
Aktualisiere sentinel.py mit dem folgenden Code:
## sentinel.py
class Sentinel:
def __init__(self):
self.__message = 'The key to encapsulation lies within the walls.'
self.__passphrase = 'abracadabra'
def reveal_message(self):
return self.__message
def change_message(self, new_message, passphrase):
if passphrase == self.__passphrase:
self.__message = new_message
else:
print('Incorrect passphrase!')
guardian = Sentinel()
guardian.change_message('Encapsulation is powerful!', 'abracadabra')
print(guardian.reveal_message())
Wenn du jetzt den Code ausführst:
python sentinel.py
Wirst du sehen, dass die Nachricht aktualisiert wurde, wenn das richtige Passwort verwendet wurde:
Encapsulation is powerful!
Zusammenfassung
In diesem Lab hast du dich in eine Welt gewagt, in der alte Prinzipien das moderne Konzept der Kapselung in Python widerspiegeln. Du hast eine Sentinel-Klasse erstellt, die ihre Geheimnisse mit privaten Attributen schützt, gelernt, wie du diese über öffentliche Methoden manipulieren kannst und Zugangskontrolle mit einem Passwort durchgeführt hast. Das Design dieses Labs war es, einen praxisorientierten Ansatz zu gewährleisten, um die privaten und öffentlichen Schnittstellen einer Python-Klasse zu verstehen, und die Idee zu verankern, dass Kapselung genauso viel darum geht, die richtigen Details preiszugeben, wie sie darum geht, sie zu verbergen.
Durch diese Übung hast du einen tieferen Einblick in die Gründe gewonnen, warum Kapselung ein grundlegendes Aspekt der objektorientierten Programmierung ist und wie sie in Python eleganterweise erreicht werden kann. Denke daran, dass die Kunst des Schreibens von guten Code oft darin besteht, eine Fassade zu schaffen, die das Notwendige preisgibt, während die Kernlogik geschützt wird, genau wie die mythischen Wächter unserer alten Geschichten.



