Annuaire d'articles
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] Utilisez Selenium pour obtenir des entrées (2023 Blog Star)
[Xiaobai doit voir] Python explore un exemple de données de joueurs NBA
[Xiaobai doit voir] Traitement et visualisation des données du crawler Python
[Incontournable pour Xiaobai] Utilisez Python pour générer un document Word de liste personnalisée
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
Débuter avec les reptiles (1) : Apprenez les bases et les compétences des reptiles
Principes de base de la programmation orientée objet Python et exemple de code
Guide d'utilisation des fichiers Python : encodage, lecture, écriture et gestion des exceptions
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 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