Table des matières
1. Présentation" >1. Présentation
Nous utilisons un objet instance ." > Nous utilisons un objet instance .
" > Dans l'exemple ci-dessus, nous avons changé l'arme du personnage r2, à savoir B22 --> B13. Mais en fait, quand on appelle les attributs d'arme du personnage r2, on constatera que son arme n'a pas changé :
3.1. attributs privés " >3.1. attributs privés
" > Une fois les attributs d'une classe définis comme attributs privés, ils ne peuvent pas être appelés en externe ni modifiés à volonté. Les propriétés privées ne peuvent être utilisées qu'au sein de la classe.
" > Les propriétés privées ne sont pas accessibles directement de l'extérieur, mais elles sont accessibles à l'intérieur de la classe, afin que nous puissions définir une méthode pour obtenir des propriétés privées.
" > On peut également utiliser une méthode pour forcer l'accès aux attributs privés attributs , et même modifier la valeur des propriétés privées. Méthode : nom de l'objet._nom de la classe__nom de l'attribut. Les classes
1. Définir les attributs privés : self.__private_attr_name = private_attr_name" >1. Définir les attributs privés : self.__private_attr_name = private_attr_name
Maison développement back-end Tutoriel Python Introduction aux classes et attributs

Introduction aux classes et attributs

Jul 21, 2017 pm 02:14 PM
特性

1. Présentation

1. Définir la classe (class Dog(object)) --> Instancier (d = Dog()) ---> )

2. Constructeur __init__()

3. self.name = nom des attributs de classe et des variables membres

4. >

2. Accéder aux propriétés de la classe

class Role(object):
    def __init__(self, name, role, weapon, life_value=100, money=15000):
        self.name = name
        self.role = role
        self.weapon = weapon
        self.life_value = life_value
        self.money = money

    def shot(self):
        print("%s is shooting..." % self.name)

    def got_shot(self):
        print("ah...,%s got shot..." % self.name)

    def buy_gun(self, gun_name):
        print("%s just bought %s" % (self.name,gun_name))


r1 = Role('Alex', 'police', 'AK47')  # 生成一个角色
r2 = Role('Jack', 'terrorist', 'B22')   # 生成一个角色
Copier après la connexion
Méthode

Nous utilisons un objet instance .

propriétés/méthodes d'accès

r1.shot()    #  调用shot 方法
r2.buy_gun('B13')  # 调用 buy_gun的方法并传参
print(r1.role)   # 打印类的属性

# 输出

Alex is shooting...
Jack just bought B13
police
Copier après la connexion
 2.1 Modifier les propriétés de l'objet

Dans l'exemple ci-dessus, nous avons changé l'arme du personnage r2, à savoir B22 --> B13. Mais en fait, quand on appelle les attributs d'arme du personnage r2, on constatera que son arme n'a pas changé :

En fait, on peut directement changer les attributs de l'objet lors de l'achat de l'arme :
r2.buy_gun('B13')
print(r2.weapon)

# 输出
Jack just bought B13
B22       # 可以发现武器依然是 B22
Copier après la connexion

 
def buy_gun(self, gun_name):
      print("%s just bought %s" % (self.name, gun_name))
      self.weapon = gun_name    # 在方法内改变属性



r2.buy_gun('B13')
print(r2.weapon)

#输出
Jack just bought B13
B13    # 可以发现武器已经改变
Copier après la connexion
3. Attributs privés

3.1. attributs privés

Une fois les attributs d'une classe définis comme attributs privés, ils ne peuvent pas être appelés en externe ni modifiés à volonté. Les propriétés privées ne peuvent être utilisées qu'au sein de la classe.

Le résultat de l'opération est qu'il est possible d'accéder au nom de l'attribut, mais une erreur est signalée lors de l'accès direct à l'attribut privé self.__address. Mais si vous utilisez d’autres méthodes, vous pouvez toujours y accéder.
class Person(object):

    def __init__(self, name, job, phone, address):
        self.name = name
        self.job = job
        self.phone = phone
        self.__address = address   # 定义一个私有属性

    def sayhi(self):
        print("hell,%s" % self.name)

p1 = Person('Bigberg', 'Doctor', '8833421', 'hz')
print(p1.name)
print(p1.__address)   # 访问私有属性

# 输出

Bigberg
  File "G:/python/untitled/study6/类的私有属性.py", line 17, in <module>
    print(p1.__address)
AttributeError: &#39;Person&#39; object has no attribute &#39;__address&#39;
Copier après la connexion

3.2. La méthode get accède aux propriétés privées

Les propriétés privées ne sont pas accessibles directement de l'extérieur, mais elles sont accessibles à l'intérieur de la classe, afin que nous puissions définir une méthode pour obtenir des propriétés privées.

 
class Person(object):

    def __init__(self, name, job, phone, address):
        self.name = name
        self.job = job
        self.phone = phone
        self.__address = address

    def get_private(self):
        return self.__address

    def sayhi(self):
        print("hell,%s" % self.name)

p1 = Person(&#39;Bigberg&#39;, &#39;Doctor&#39;, &#39;8833421&#39;, &#39;hz&#39;)
res = p1.get_private()
print(res)

# 输出
hz
Copier après la connexion
 
3.3 Forcer l'accès aux attributs privés

On peut également utiliser une méthode pour forcer l'accès aux attributs privés attributs , et même modifier la valeur des propriétés privées. Méthode : nom de l'objet._nom de la classe__nom de l'attribut. Les classes

 
class Person(object):

    def __init__(self, name, job, phone, address):
        self.name = name
        self.job = job
        self.phone = phone
        self.__address = address

    def get_private(self):
        return self.__address

    def sayhi(self):
        print("hell,%s" % self.name)

p1 = Person(&#39;Bigberg&#39;, &#39;Doctor&#39;, &#39;8833421&#39;, &#39;hz&#39;)

print(p1._Person__address)   # 访问私有属性

print("----change----")
p1._Person__address = &#39;BJ&#39;    # 修改私有属性
print(p1._Person__address)

#输出
hz
----change----
BJ
Copier après la connexion

sont des outils importants pour simplifier et optimiser les applications.

1. Héritage : la capacité des sous-classes à hériter des caractéristiques des classes parentes. Il incarne et étend le partage de méthodes de programmation orientées objet, permettant aux objets du même type de partager des données et du code de programme, améliorant ainsi la réutilisabilité des programmes. La classe parent est une classe qui peut être définie davantage pour dériver de nouvelles classes, et la sous-classe est une nouvelle classe établie en utilisant d'autres classes comme point de départ et en définissant des caractéristiques plus spécifiques. 2. Polymorphisme : certaines classes associées contiennent des méthodes portant le même nom, mais le contenu des méthodes peut être différent. Celui à appeler est déterminé au moment de l'exécution en fonction de la classe de l'objet. Le même message peut conduire à différentes actions lorsqu'il est reçu par différents objets. 3. Abstraction : extraire les caractéristiques distinctives d'une classe ou d'un objet sans traiter d'autres informations sur la classe ou l'objet.

4. Résumé

1. Définir les attributs privés : self.__private_attr_name = private_attr_name

2. Accéder aux attributs privés : nom de l'objet._nom de la classe__nom de l'attribut (d._dog__sex)

3. Fournir un accès à l'interface externe en lecture seule :

def. get_sex(self):

return self.__sex

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Introduction aux différences entre la version Win7 Home et la version Win7 Ultimate Introduction aux différences entre la version Win7 Home et la version Win7 Ultimate Jul 12, 2023 pm 08:41 PM

Tout le monde sait qu'il existe de nombreuses versions du système Win7, telles que la version Win7 Ultimate, la version Win7 Professional, la version Win7 Home, etc. De nombreux utilisateurs sont coincés entre la version Home et la version Ultimate et ne savent pas quelle version choisir. alors aujourd'hui, je vais vous parler des différences entre Win7 Family Meal et Win7 Ultimate. Jetons un coup d'œil. 1. Experience Different Home Basic Edition rend vos opérations quotidiennes plus rapides et plus simples et vous permet d'accéder plus rapidement et plus facilement à vos programmes et documents les plus fréquemment utilisés. Home Premium vous offre la meilleure expérience de divertissement, permettant de profiter et de partager facilement vos émissions de télévision, photos, vidéos et musiques préférées. L'Ultimate Edition intègre toutes les fonctions de chaque édition et possède toutes les fonctions de divertissement et fonctionnalités professionnelles de Windows 7 Home Premium.

Maîtriser les concepts clés de Spring MVC : comprendre ces fonctionnalités importantes Maîtriser les concepts clés de Spring MVC : comprendre ces fonctionnalités importantes Dec 29, 2023 am 09:14 AM

Comprendre les fonctionnalités clés de SpringMVC : pour maîtriser ces concepts importants, des exemples de code spécifiques sont nécessaires. SpringMVC est un cadre de développement d'applications Web basé sur Java qui aide les développeurs à créer des structures flexibles et évolutives via le modèle architectural Model-View-Controller (MVC). application Web. Comprendre et maîtriser les fonctionnalités clés de SpringMVC nous permettra de développer et de gérer nos applications Web plus efficacement. Cet article présentera quelques concepts importants de SpringMVC

Choisissez la version Go applicable, en fonction des besoins et des fonctionnalités Choisissez la version Go applicable, en fonction des besoins et des fonctionnalités Jan 20, 2024 am 09:28 AM

Avec le développement rapide d'Internet, les langages de programmation évoluent et se mettent à jour constamment. Parmi eux, le langage Go, en tant que langage de programmation open source, a attiré beaucoup d'attention ces dernières années. Le langage Go est conçu pour être simple, efficace, sûr et facile à développer et à déployer. Il présente les caractéristiques d'une concurrence élevée, d'une compilation rapide et d'une sécurité de la mémoire, ce qui le rend largement utilisé dans des domaines tels que le développement Web, le cloud computing et le big data. Cependant, il existe actuellement différentes versions du langage Go disponibles. Lors du choix d’une version linguistique Go appropriée, nous devons prendre en compte à la fois les exigences et les fonctionnalités. tête

Existe-t-il des fonctionnalités orientées objet de type classe dans Golang ? Existe-t-il des fonctionnalités orientées objet de type classe dans Golang ? Mar 19, 2024 pm 02:51 PM

Il n'y a pas de concept de classe au sens traditionnel dans Golang (langage Go), mais il fournit un type de données appelé structure, à travers lequel des fonctionnalités orientées objet similaires aux classes peuvent être obtenues. Dans cet article, nous expliquerons comment utiliser les structures pour implémenter des fonctionnalités orientées objet et fournirons des exemples de code concrets. Définition et utilisation des structures Examinons d'abord la définition et l'utilisation des structures. Dans Golang, les structures peuvent être définies via le mot-clé type, puis utilisées si nécessaire. Les structures peuvent contenir des attributs

Quelles sont les trois caractéristiques de la 5g Quelles sont les trois caractéristiques de la 5g Dec 09, 2020 am 10:55 AM

Les trois caractéristiques de la 5G sont : 1. Haut débit ; dans les applications pratiques, la vitesse du réseau 5G est plus de 10 fois supérieure à celle du réseau 4G. 2. Faible latence : la latence du réseau 5G est d'environ plusieurs dizaines de millisecondes, ce qui est plus rapide que la vitesse de réaction humaine. 3. Une connexion étendue ; l’émergence du réseau 5G, combinée à d’autres technologies, créera une nouvelle scène de l’Internet des objets.

Types et caractéristiques des fonctions C++ Types et caractéristiques des fonctions C++ Apr 11, 2024 pm 03:30 PM

Les fonctions C++ ont les types suivants : fonctions simples, fonctions const, fonctions statiques et fonctions virtuelles ; les fonctionnalités incluent : les fonctions en ligne, les paramètres par défaut, les retours de référence et les fonctions surchargées. Par exemple, la fonction calculateArea utilise π pour calculer l'aire d'un cercle d'un rayon donné et la renvoie en sortie.

Quelles sont les caractéristiques de Java Quelles sont les caractéristiques de Java Aug 09, 2023 pm 03:05 PM

Les caractéristiques de Java sont : 1. Simple et facile à apprendre 2. Orienté objet, rendant le code plus réutilisable et maintenable 3. Indépendant de la plate-forme, capable de fonctionner sur différents systèmes d'exploitation 4. Gestion de la mémoire, via des déchets automatiques ; mécanisme de collecte Gérer la mémoire 5. Vérification de type forte, les variables doivent déclarer leur type avant utilisation 6. Sécurité, qui peut empêcher l'accès non autorisé et l'exécution de code malveillant 7. Prise en charge du multithread, qui peut améliorer les performances et la réactivité du programme ; 8. La gestion des exceptions peut éviter les plantages du programme ; 9. Un grand nombre de bibliothèques et de frameworks de développement ;

Maîtriser les fonctionnalités clés et les scénarios d'application du middleware Golang Maîtriser les fonctionnalités clés et les scénarios d'application du middleware Golang Mar 20, 2024 pm 06:33 PM

En tant que langage de programmation rapide et efficace, Golang est également largement utilisé dans le domaine du développement Web. Parmi eux, le middleware, en tant que modèle de conception important, peut aider les développeurs à mieux organiser et gérer le code, et à améliorer la réutilisabilité et la maintenabilité du code. Cet article présentera les principales fonctionnalités et scénarios d'application du middleware dans Golang, et illustrera son utilisation à travers des exemples de code spécifiques. 1. Le concept et la fonction du middleware En tant que composant plug-in, le middleware se situe dans la chaîne de traitement requête-réponse de l'application.

See all articles