Dans Python, une classe est définie à l'aide du mot-clé class
suivi du nom de la classe. Au sein d'une classe, vous pouvez définir à la fois les attributs et les méthodes.
Les attributs sont des variables qui stockent les données associées aux instances de la classe. Ils peuvent être définis directement dans le corps de classe (attributs de classe) ou dans des méthodes telles que la méthode __init__
(attributs d'instance). La méthode __init__
est une méthode spéciale qui est appelée lorsqu'une instance de la classe est créée. Il est couramment utilisé pour initialiser les attributs de la classe.
Voici un exemple de définition des attributs dans une classe:
<code class="python">class Person: # Class attribute species = "Homo sapiens" # Instance attribute defined in the __init__ method def __init__(self, name, age): self.name = name self.age = age</code>
Les méthodes sont des fonctions définies dans une classe qui définissent les comportements de la classe. Ils peuvent accéder aux attributs de la classe et effectuer des opérations sur eux. Les méthodes sont définies de manière similaire aux fonctions régulières, mais elles sont en retrait dans le corps de la classe.
Voici un exemple de définition des méthodes dans une classe:
<code class="python">class Person: def __init__(self, name, age): self.name = name self.age = age # Method to introduce the person def introduce(self): return f"My name is {self.name} and I am {self.age} years old."</code>
Dans cet exemple, introduce
est une méthode qui renvoie une chaîne introduisant la personne.
Dans Python, il existe deux types d'attributs qui peuvent être définis dans une classe: attributs d'instance et attributs de classe.
Les attributs d'instance sont spécifiques à chaque instance d'une classe. Ils sont définis à l'intérieur de la méthode __init__
ou de toute autre méthode de la classe, en utilisant le self
-clé. Chaque instance de la classe peut avoir des valeurs différentes pour ses attributs d'instance.
Par exemple:
<code class="python">class Person: def __init__(self, name): self.name = name # Instance attribute person1 = Person("Alice") person2 = Person("Bob") print(person1.name) # Outputs: Alice print(person2.name) # Outputs: Bob</code>
Les attributs de classe sont partagés entre tous les cas d'une classe. Ils sont définis directement dans le corps de la classe, en dehors de toute méthode. Tout changement à un attribut de classe affecte toutes les instances de la classe.
Par exemple:
<code class="python">class Person: species = "Homo sapiens" # Class attribute def __init__(self, name): self.name = name person1 = Person("Alice") person2 = Person("Bob") print(person1.species) # Outputs: Homo sapiens print(person2.species) # Outputs: Homo sapiens Person.species = "New Species" print(person1.species) # Outputs: New Species print(person2.species) # Outputs: New Species</code>
Dans cet exemple, species
est un attribut de classe partagé sur toutes les instances de la classe Person
.
L'héritage est un concept fondamental de la programmation orientée objet qui permet à une classe (appelée sous-classe ou classe dérivée) pour hériter des attributs et des méthodes d'une autre classe (appelée superclasse ou classe de base). Cela permet la réutilisation du code et la création de types d'objets plus spécifiques basés sur les classes existantes.
Pour utiliser l'héritage dans Python, vous spécifiez la superclasse entre parenthèses après le nom de classe dans la définition de la sous-classe. Voici un exemple:
<code class="python">class Animal: def __init__(self, species): self.species = species def make_sound(self): pass # This method is intended to be overridden by subclasses class Dog(Animal): def __init__(self, name): super().__init__("Canis familiaris") # Call the __init__ method of the superclass self.name = name def make_sound(self): return "Woof!" class Cat(Animal): def __init__(self, name): super().__init__("Felis catus") # Call the __init__ method of the superclass self.name = name def make_sound(self): return "Meow!"</code>
Dans cet exemple, Dog
et Cat
sont des sous-classes d' Animal
. Ils héritent de l'attribut species
et peuvent remplacer la méthode make_sound
pour fournir un comportement spécifique.
Vous pouvez également utiliser l'héritage pour créer des hiérarchies de classe plus complexes et implémenter plusieurs héritage, où une classe peut hériter de plus d'une superclasse.
L'organisation des méthodes au sein d'une classe Python est efficacement importante pour la lisibilité et la maintenabilité. Voici quelques meilleures pratiques:
calculate
, update
, fetch
) et être précis sur ce que fait la méthode.Ordre des méthodes :
__init__
, __str__
, __repr__
, etc._
) qui sont destinées à une utilisation interne au sein de la classe ou de ses sous-classes.__
) qui sont destinées à une utilisation uniquement au sein de la classe.Voici un exemple de classe bien organisée:
<code class="python">class BankAccount: def __init__(self, account_number, balance=0): self.account_number = account_number self.balance = balance def deposit(self, amount): if amount > 0: self.balance = amount return True return False def withdraw(self, amount): if 0 0 def __str__(self): return f"Account {self.account_number}: Balance = ${self.balance}"</code>
Dans cet exemple, les méthodes spéciales sont en premier ( __init__
, __str__
), suivies des méthodes publiques ( deposit
, withdraw
, get_balance
), et enfin une méthode protégée ( _validate_transaction
). Chaque méthode est concise et a un objectif clair.
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!