[Apprendre python à partir de zéro] 44. Propriétés et méthodes privées en programmation orientée objet

Propriétés et méthodes privées

Dans le développement réel, certaines propriétés ou méthodes d'un objet ne peuvent être utilisées qu'à l'intérieur de l'objet, mais pas accessibles de l'extérieur. Dans ce cas, des propriétés et méthodes privées peuvent être définies.

définir la méthode

Lors de la définition d'une propriété ou d'une méthode, ajoutez deux traits de soulignement avant le nom de la propriété ou le nom de la méthode __pour définir une propriété ou une méthode privée.

class Person:
    def __init__(self,name,age):
        self.name = name
        self.age = age
        self.__money = 2000  # 使用 __ 修饰的属性,是私有属性

    def __shopping(self, cost):
        self.__money -= cost  # __money 只能在对象内部使用
        print('还剩下%d元' % self.__money)

    def test(self):
        self.__shopping(200)  # __shopping 方法也只能在对象内部使用

p = Person('张三',18)
# print(p.__money)   这里会报错,不能直接访问对象内部的私有属性
p.test()
# p.__shopping()  这里会报错,__shopping 只能在对象内部使用,外部无法访问

Accéder aux propriétés et méthodes privées

Les propriétés privées ne peuvent pas être utilisées directement et les méthodes privées ne peuvent pas être appelées directement. Cependant, avec du code, nous pouvons également accéder aux propriétés et méthodes privées d'un objet de manière externe.

entretien direct

Comment ça fonctionne : ajouter avant le nom de la propriété privée ou le nom de la méthode_类名

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__money = 2000

    def __shopping(self, cost):
        self.__money -= cost


p = Person('李四', 20)
print(p._Person__money)  # 使用对象名._类名__私有属性名 可以直接访问对象的私有属性
p._Person__shopping(100)  # 使用对象名._类名__函数名 可以直接调用对象的私有方法
print(p._Person__money)

Note : En développement, nous vous déconseillons fortement d'utiliser 对象名._类名__私有属性名la méthode pour accéder aux propriétés privées de l'objet !

Définir des méthodes pour accéder aux variables privées

En développement réel, si la variable de l'objet est __agrémentée de , cela signifie qu'il s'agit d'une variable privée, et qu'il est déconseillé de l'utiliser et de la modifier directement de l'extérieur. Si vous insistez pour modifier cet attribut, vous pouvez utiliser la méthode de définition des méthodes get et set pour y parvenir.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.__money = 2000  # __money 是私有变量,外部无法访问

    def get_money(self):  # 定义了get_money 方法,在这个方法里获取到 __money
        return self.__money  # 内部可以访问 __money 变量

    def set_money(self, money):  # 定义了set_money 方法,在这个方法里,可以修改 __money
        self.__money = money


p = Person('王五', 21)

# 外部通过调用 get_money 和 set_money 这两个公开方法获取和修改私有变量
print(p.get_money())
p.set_money(8000)
print(p.get_money())

Cas avancé

[Python] Python réalise le jeu de devinettes de mots - défiez votre intelligence et votre chance !

[python] La bibliothèque Python tkinter implémente un programme graphique pour le convertisseur d'unité de poids

[python] Utilisez Selenium pour obtenir des entrées (2023 Blog Star)

[python] Utilisez Selenium et Chrome WebDriver pour obtenir des informations sur l'article dans [Tencent Cloud Studio Practical Training Camp]

Utilisez le studio Tencent Cloud Cloud pour réaliser la planification Baidu AI pour réaliser la reconnaissance de texte

[Amusez-vous avec la série Python [Xiaobai doit voir] Robot d'exploration multithread Python : téléchargez des images de sites Web de packages d'émoticônes

[Play with Python series] [Must-see for Xiaobai] Utilisez Python pour explorer les données historiques de Shuangseqiu et les analyser visuellement

[Jouez avec la série python] [Incontournable pour Xiaobai] Utilisez la technologie Python crawler pour obtenir une adresse IP proxy et enregistrez-la dans un fichier

[Incontournable pour Xiaobai] Exemple de synthèse d'images Python utilisant la bibliothèque PIL pour réaliser la synthèse de plusieurs images par rangs et colonnes

[Xiaobai doit voir] Le combat réel du crawler Python télécharge des images de déesses par lots et les enregistre localement

[Xiaobai doit voir] Analyse détaillée du générateur de nuage de mots Python et implémentation du code

[Xiaobai doit voir] Python explore un exemple de données de joueurs NBA

[Incontournable pour Xiaobai] Exemple de code pour explorer et enregistrer l'audio de l'Himalaya à l'aide de Python

[Incontournable pour Xiaobai] Réalisation technique de l'utilisation de Python pour télécharger des images de skin League of Legends par lots

[Xiaobai doit voir] Traitement et visualisation des données du crawler Python

[Incontournable pour Xiaobai] Programme de chenilles Python pour obtenir facilement des images de peau de héros de King of Glory

[Incontournable pour Xiaobai] Utilisez Python pour générer un document Word de liste personnalisée

[Incontournable pour Xiaobai] Combat de chenilles Python : obtenez des images du site Web d'Onmyoji et enregistrez-les automatiquement

Xiaobai série incontournable du système de gestion de bibliothèque - exemple de code pour les fonctions de connexion et d'enregistrement

100 cas de combat réel de Xiaobai : un programme complet et simple de jugement gagnant à la loterie Shuangseqiu, adapté au démarrage de Xiaobai

Traitement et visualisation de données géospatiales à l'aide de géopandas et shapely (.shp)

Utiliser le sélénium pour explorer les données de la liste de films Maoyan

Explication détaillée du principe et de la mise en œuvre de l'algorithme d'amélioration d'image Retinex

Guide de démarrage pour les robots d'exploration (8) : écrivez des programmes de robots d'exploration de données météorologiques pour l'analyse visuelle

Guide d'introduction aux robots d'exploration (7): Utilisation de Selenium et de BeautifulSoup pour explorer le film Douban Top250 Exemple d'explication [Reptile Xiaobai doit regarder]

Guide de démarrage des robots d'exploration (6) : Anti-crawlers et compétences avancées : proxy IP, déguisement d'agent utilisateur, vérification de la connexion par contournement des cookies et outils d'identification du code de vérification

Guide d'introduction aux robots d'exploration (5) : robots d'exploration distribués et contrôle de concurrence

Premiers pas avec les robots d'exploration (4) : la meilleure façon d'explorer des pages Web dynamiques à l'aide de Selenium et de l'API

Guide de démarrage des robots d'exploration (3) : requêtes réseau Python et stratégies anti-crawler courantes

Premiers pas avec les robots d'exploration (2) : Comment utiliser les expressions régulières pour l'extraction et le traitement des données

Débuter avec les reptiles (1) : Apprenez les bases et les compétences des reptiles

Application du modèle d'apprentissage en profondeur à la reconnaissance d'images : analyse de la pratique et de la précision des ensembles de données CIFAR-10

Principes de base de la programmation orientée objet Python et exemple de code

Guide d'utilisation de la base de données MySQL : apprenez à utiliser Python pour ajouter, supprimer, modifier et interroger des opérations

Guide d'utilisation des fichiers Python : encodage, lecture, écriture et gestion des exceptions

Utilisez Python et Selenium pour automatiser l'exploration#【Dragon Boat Festival Special Call for Papers】Explorez la technologie ultime, et l'avenir vous appartiendra "Zong" #Articles contribués

Tutoriel Python multi-thread et multi-processus : analyse complète, cas de code et compétences en optimisation

Selenium Automation Toolset - Guide complet et tutoriels

Les bases du robot d'exploration Python sont avancées jusqu'au didacticiel de combat réel

Tutoriel d'introduction à Python : maîtrisez les connaissances de base de la boucle for, de la boucle while, de l'opération sur les chaînes, de la lecture et de l'écriture de fichiers et de la gestion des exceptions

Tutoriel de traitement et d'analyse des données Pandas : des bases au combat réel

Explication détaillée des types de données couramment utilisés et des opérations associées en Python

[Le dernier en 2023] Explication détaillée des six principaux schémas pour améliorer l'indice du modèle de classification

Introduction aux bases de la programmation Python et compétences avancées, développement Web, analyse de données, apprentissage automatique et intelligence artificielle

Résultats de prédiction graphique avec 4 méthodes de régression : régression vectorielle, régression de forêt aléatoire, régression linéaire, régression des K-plus proches voisins

Je suppose que tu aimes

Origine blog.csdn.net/qq_33681891/article/details/132356412
conseillé
Classement