attributs de classe
1. Définir les attributs directement dans la classe
Définir les attributs de la classe Bien sûr, le moyen le plus simple et le plus direct est de les définir dans la classe, par exemple :
class UserInfo(object): name='两点水'
2.
d'où le nom. , qui consiste à définir les propriétés lors de la construction de l'objet.
class UserInfo(object): def __init__(self,name): self.name=name
3. Contrôle d'accès aux attributs
En Java, il existe des propriétés publiques (publiques) et privées (privées), qui peuvent contrôler l'accès aux propriétés. Alors, existe-t-il un contrôle d'accès aux attributs en Python ?
Généralement, nous utiliserons __private_attrs commençant par deux traits de soulignement pour déclarer que l'attribut est privé et ne peut pas être utilisé ou directement accessible en dehors de la classe. Lors de l'utilisation de self.__private_attrs dans une méthode à l'intérieur d'une classe.
Pourquoi ne peut-on parler que de situations générales ? Car en fait, Python ne fournit pas de fonctions telles que les attributs privés. Cependant, le contrôle d'accès aux attributs par Python dépend de la connaissance du programmeur. Pourquoi tu dis ça ? Jetez un œil à l'exemple ci-dessous :
Regardez attentivement l'image, pourquoi dites-vous que le double soulignement n'est pas un véritable attribut privé ? Jetons un coup d'œil à l'exemple suivant et utilisons l'exemple suivant pour vérifier :
#!/usr/bin/env python # -*- coding: UTF-8 -*- class UserInfo(object): def __init__(self, name, age, account): self.name = name self._age = age self.__account = account def get_account(self): return self.__account if __name__ == '__main__': userInfo = UserInfo('两点水', 23, 347073565); # 打印所有属性 print(dir(userInfo)) # 打印构造函数中的属性 print(userInfo.__dict__) print(userInfo.get_account()) # 用于验证双下划线是否是真正的私有属性 print(userInfo._UserInfo__account)
Le résultat de sortie est le suivant :