Portée

Les étudiants qui ont étudié Java savent que les classes Java peuvent définir des méthodes et des propriétés publiques (publiques) ou privées (privées). C'est principalement parce que nous espérons que certaines fonctions et propriétés peuvent être utilisées par d'autres ou uniquement par d'autres. usage interne. En découvrant les modules en Python, ils sont en fait similaires aux classes en Java. Alors, comment réaliser que dans un module, certaines fonctions et variables sont utilisées par d'autres, et certaines fonctions et variables ne sont utilisées qu'à l'intérieur du module ?

En Python, cela est réalisé grâce au préfixe _. Les noms normaux de fonctions et de variables sont publics et peuvent être directement référencés, tels que : abc, ni12, PI, etc. ; les variables comme __xxx__ sont des variables spéciales et peuvent être directement référencées, mais ont des objectifs spéciaux, comme ci-dessus. Le __name__ est un variable spéciale, et __author__ est également une variable spéciale, utilisée pour indiquer l'auteur. Notez que nos propres variables n'utilisent généralement pas de tels noms de variables ; les fonctions ou les variables comme _xxx et __xxx sont privées et ne doivent pas être directement référencées, comme _abc, __abc, etc. ; ne peut pas. Étant donné qu'il n'existe aucun moyen en Python de restreindre complètement l'accès aux fonctions ou variables privées, les fonctions ou variables privées ne doivent cependant pas être référencées à partir des habitudes de programmation.

Par exemple :

#!/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)

Le résultat de sortie :

尊敬的钻石会员用户,您好
DiamondVIP2

Dans ce module, nous exposons la fonction de la méthode vip_lv_name, et une autre logique interne est implémentée dans les fonctions privées _diamond_vip et _gold_vip respectivement, car c'est la logique d'implémentation interne, la caller Il n'est pas du tout nécessaire de se soucier de cette méthode de fonction, elle se soucie uniquement d'appeler la fonction de méthode de vip_lv_name, donc utiliser private est une méthode très utile d'encapsulation et d'abstraction de code

Généralement, toutes les fonctions qui n'ont pas besoin d'être référencées de l'extérieur sont définies comme privées, et seules les fonctions externes qui doivent être référencées sont définies comme publiques.

Formation continue
  • Recommandations de cours
  • Téléchargement du didacticiel