Il s'agit de combiner les données et les opérations associées en un seul objet, et de fournir une divulgation d'informations et des opérations minimales à l'extérieur. Parmi les variables et fonctions d'un objet, les données qui n'ont pas besoin d'être référencées directement de l'extérieur et les opérations non utilisées doivent être protégées et masquées. Protéger signifie ne pas utiliser ou réécrire en dehors de cette classe. Cela maintient un couplage lâche entre les programmes et facilite la maintenance. De plus, il est possible de rendre difficile la génération d'erreurs telles que différents types et la protection des données. Ceci est particulièrement important lors de la construction de systèmes à grande échelle.
Cela signifie que la même fonction ou variable peut se comporter différemment selon le type de données. Si vous créez une méthode qui correspond au type, le programme sera très long.
Il s'agit de prendre en charge les membres et les méthodes d'une classe et de créer une nouvelle classe enfant. En héritant, les parties communes peuvent être réutilisées ensemble. Il existe un type particulier d'héritage, à savoir les deux héritages suivants.
Les classes abstraites ne peuvent pas être instanciées et ne fonctionneront comme un programme que si elles sont héritées. Les classes abstraites vous permettent d'implémenter des méthodes et de déclarer des méthodes abstraites. La méthode abstraite déclarée doit être implémentée dans la destination d'héritage.
Aucun programme n'est écrit ici, seule la méthode est déclarée. La classe héritée doit implémenter cette méthode. De plus, l'héritage normal et l'héritage de classe abstraite ne permettent pas l'héritage de plusieurs classes, mais les interfaces peuvent effectuer plusieurs héritages. En séparant l'interface, vous pouvez choisir d'hériter ou non de la pièce.
Les classes abstraites peuvent implémenter des méthodes. L'interface peut être héritée de plusieurs fois. Une autre façon de voir les choses est que la classe abstraite est interne et l'interface est externe. Lors de l'héritage d'une classe abstraite, elle y est souvent complétée, et lors de l'héritage d'une interface, l'instance est souvent utilisée en externe.
En Python, toutes les variables et méthodes sont publiques, elles se distinguent donc par un soulignement_. Les variables et méthodes avec un trait de soulignement au début sont traitées comme privées.
Class ClassName():
def __init__(self):
self.public_variable = ‘safe’
self._private_variable = ‘unsafe’
def public_method():
pass
def _private_method():
pass
En python, la classe de base abstraite (ABC) est utilisée.
class BaseClassName(metaclass=ABCMeta):
@abstractmethod
def abst_method_name(self):
pass
def method_name(self):
print(self.name)
Spécifiez ABCMeta comme classe méta et ajoutez un décorateur appelé @abstractmethod à la définition de la méthode abstraite. Cela garantit que la classe héritée remplace abst_method_name.
Puisque python n'a pas d'interface en standard et que l'héritage multiple est possible, vous ne pouvez faire que quelque chose comme une interface. Si vous voulez faire quelque chose comme ça, définissez la classe abstraite ci-dessus sans implémentation.
Recommended Posts