Sind die „privaten' Methoden von Python wirklich privat?
Warum Pythons „private“ Methoden nicht wirklich privat sind
Trotz des doppelten Unterstrichs, der in Python üblicherweise zur Bezeichnung „privater“ Methoden verwendet wird, Diese Methoden bleiben für Benutzer über eine etwas andere Namenskonvention zugänglich.
Der Python-Interpreter benennt diese um 'private' Methoden zu "_ClassName__MethodName". Somit kann die angeblich „private“ Methode „__myPrivateMethod()“ als „_MyClass__myPrivateMethod()“ aufgerufen werden.
Diese Namensverschlüsselung ist nicht als eine Form der Kapselung oder zur Verhinderung des Zugriffs von außen gedacht. Stattdessen dient es dazu, sicherzustellen, dass Unterklassen nicht unbeabsichtigt die „privaten“ Methoden ihrer Oberklassen überschreiben.
Betrachten Sie das folgende Beispiel:
class Foo(object): def __init__(self): self.__baz = 42 def foo(self): print(self.__baz) class Bar(Foo): def __init__(self): super(Bar, self).__init__() self.__baz = 21 def bar(self): print(self.__baz)
Wenn wir eine Instanz von Bar erstellen und aufrufen Sowohl foo() als auch bar() sehen wir die folgende Ausgabe:
x = Bar() x.foo() 42 x.bar() 21
Wie aus der Ausgabe hervorgeht, wurde die Unterklasse erfolgreich ausgeführt überschreibt den Wert von __baz, ohne das „private“ Attribut der Oberklasse zu beeinflussen. Darüber hinaus zeigt der Zugriff auf x.__dict__, dass beide Versionen des __baz-Attributs innerhalb der Unterklasseninstanz koexistieren.
Während diese Namensverschlüsselung versehentliche Überschreibungen verhindern kann, verhindert sie nicht den absichtlichen Zugriff auf „private“ Methoden von externen Quellen. Folglich sind die „privaten“ Methoden von Python nicht wirklich privat und sollten nicht zur Kapselung herangezogen werden.
Das obige ist der detaillierte Inhalt vonSind die „privaten' Methoden von Python wirklich privat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie Python, um die ZiPF -Verteilung einer Textdatei zu finden

So herunterladen Sie Dateien in Python

Wie benutze ich eine schöne Suppe, um HTML zu analysieren?

Wie man mit PDF -Dokumenten mit Python arbeitet

Wie kann man mit Redis in Django -Anwendungen zwischenstrichen

Einführung des natürlichen Sprach -Toolkits (NLTK)

Wie führe ich ein tiefes Lernen mit Tensorflow oder Pytorch durch?
