[Apprendre python à partir de zéro] 43. Attributs d'instance et attributs de classe dans la programmation orientée objet Python

attribut d'instance, attribut de classe

Dans le développement orienté objet, une instance créée à l'aide d'une classe est un objet, la classe est-elle donc un objet ?

attribut d'instance

Les objets créés via des classes sont appelés objets d'instance, et les attributs d'objet sont également appelés attributs d'instance, qui enregistrent les données de chaque objet, et les attributs d'instance de différents objets portant le même nom, les données enregistrées sont indépendantes et n'interfèrent pas les unes avec les autres .

class Person(object):
    def __init__(self,name,age):
        # 这里的name和age都属于是实例属性,每个实例在创建时,都有自己的属性
        self.name = name
        self.age = age

Chaque fois qu'un objet est créé, l'objet a ses propres propriétés de nom et d'âge

p1 = Person('张三',18)
p2 = Person("李四",20)

attribut de classe

Un attribut de classe est un attribut appartenant à un objet de classe, qui est partagé par tous les objets d'instance de la classe, et un attribut de classe est accessible via un objet de classe ou un objet d'instance.

class Dog:
    type = "狗"  # 类属性

Qu'il s'agisse de la classe dog1, dog2 ou Dog, vous pouvez accéder à l'attribut type

print(Dog.type)  # 结果:狗
print(dog1.type)  # 结果:狗
print(dog2.type)  # 结果:狗

scènes à utiliser

Un attribut de classe est défini lorsqu'une donnée enregistrée par une instance d'une classe est toujours cohérente.
Les attributs d'instance exigent que chaque objet ouvre un espace mémoire séparé pour enregistrer des données, tandis que les attributs de classe sont partagés par toutes les classes, occupant une seule mémoire, économisant ainsi plus d'espace mémoire.

point important:

  1. Essayez d'éviter les attributs de classe et les attributs d'instance portant le même nom. S'il existe un attribut d'instance avec le même nom, l'objet d'instance accédera d'abord à l'attribut d'instance.
class Dog(object):
    type = "狗"  # 类属性

    def __init__(self):
        self.type = "dog"  # 对象属性

créer un objet

dog1 = Dog()

print(dog1.type)     # 结果为 “dog”   类属性和实例属性同名,使用实例对象访问的是实例属性
  1. Les attributs de classe ne peuvent être modifiés que via des objets de classe, pas des objets d'instance
class Dog(object):
    type = "狗"  # 类属性

dog1 = Dog()
dog1.type = "dog"   # 使用实例对象创建了对象属性type

print(dog1.type)     # 结果为 “dog”   类属性和实例属性同名,访问的是实例属性
print(Dog.type)      # 结果为 "狗"   访问类属性

# 只有使用类名才能修改类属性
Dog.type = "土狗"
print(Dog.type)  # 土狗
dog2 = Dog()
print(dog2.type)  # 土狗
  1. Les attributs de classe peuvent également être définis sur privé en ajoutant deux traits de soulignement devant. comme:
class Dog(object):
    count = 0  # 公有的类属性
    __type = "狗"  # 私有的类属性

print(Dog.count)       # 正确
print(Dog.__type)      # 错误,私有属性,外部无法访问。

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/132356225
conseillé
Classement