Studenten, die Java studiert haben, wissen, dass Java-Klassen öffentliche (öffentliche) oder private (private) Methoden und Eigenschaften definieren können. Dies liegt hauptsächlich daran, dass wir hoffen, dass einige Funktionen und Eigenschaften von anderen oder nur für den internen Gebrauch verwendet werden können. Wenn wir etwas über Module in Python lernen, ähneln sie tatsächlich Klassen in Java. Wie erkennen wir also, dass in einem Modul einige Funktionen und Variablen von anderen verwendet werden und einige Funktionen und Variablen nur innerhalb des Moduls verwendet werden?
In Python wird dies durch das Präfix _ erreicht. Normale Funktions- und Variablennamen sind öffentlich und können direkt referenziert werden, z. B. abc, ni12, PI usw.; Variablen wie __xxx__ sind spezielle Variablen und können direkt referenziert werden, haben jedoch spezielle Zwecke, wie z. B. der oben genannte __name__ spezielle Variable, und __author__ ist auch eine spezielle Variable, die zur Angabe des Autors verwendet wird. Beachten Sie, dass wir diese Art von Variablennamen im Allgemeinen nicht für unsere eigenen Variablen verwenden; Funktionen oder Variablen wie _xxx und __xxx sind privat und sollten nicht direkt referenziert werden, wie z. B. _abc, __abc usw.; Es heißt: sollte nicht, nicht kann. Da es in Python keine Möglichkeit gibt, den Zugriff auf private Funktionen oder Variablen vollständig einzuschränken, sollten private Funktionen oder Variablen jedoch aus Programmiergewohnheiten nicht referenziert werden.
Zum Beispiel:
#!/usr/bin/env python3 # -*- coding: UTF-8 -*- def _diamond_vip(lv): print('尊敬的钻石会员用户,您好') vip_name = 'DiamondVIP' + str(lv) return vip_name def _gold_vip(lv): print('尊敬的黄金会员用户,您好') vip_name = 'GoldVIP' + str(lv) return vip_name def vip_lv_name(lv): if lv == 1: print(_gold_vip(lv)) elif lv == 2: print(_diamond_vip(lv)) vip_lv_name(2)
Ausgabeergebnis:
尊敬的钻石会员用户,您好 DiamondVIP2
In diesem Modul legen wir die Methodenfunktion vip_lv_name offen, während andere interne Logik in _diamond_vip bzw. _gold_vip privat ist. Implementiert in Da es sich bei der Funktion um eine interne Implementierungslogik handelt, muss sich der Aufrufer überhaupt nicht um diese Funktionsmethode kümmern, sondern nur um den Aufruf vip_lv_name-Methodenfunktion, daher ist die Verwendung von privat eine sehr nützliche Methode zur Codekapselung und -abstraktion
Im Allgemeinen werden alle Funktionen, auf die nicht von außen verwiesen werden muss, als privat definiert, und nur Funktionen, auf die verwiesen werden muss von außen werden als öffentlich definiert.
nächsten Abschnitt