Python >> Tutoriel Python >  >> Python

Python est une sous-classe()

issubclass(X, Y) intégré de Python la fonction prend une classe X et une classe Y et renvoie True si le X est une instance de Y et sinon False . L'argument Y peut aussi être un tuple auquel cas il vérifie si X est une sous-classe de n'importe quelle classe du tuple, comme dans issubclass(X, (class_1, class_2, ...)) .

Utilisation

Apprenez par l'exemple ! Voici un exemple d'utilisation du issubclass() fonction intégrée.

class Car:
    pass

class Porsche(Car):
    speed = 200 #mph


print('Is Porsche a subclass of Car?')
print(issubclass(Porsche, Car))

La sortie est :

Is Porsche a subclass of Car?
True

Porsche est une sous-classe de Car parce que vous définissez la hiérarchie d'héritage dans la définition de classe avec Porsche(Car) . Porsche hérite de la méthode et de l'attribut de son parent Car —donc la fonction issubclass(Porsche, Car) renvoie True .

Si vous passez un non-parent de Porsche , la fonction renverra False :

print(issubclass(Porsche, int))
# False

La vidéo est une sous-classe()

Syntaxe issubclass()

Le issubclass() méthode a la syntaxe suivante :

Syntax: 
issubclass(class, class)         # Check if a class is a subclass of another class. 
issubclass(class, (class_A, class_B, ...))         # Check if a class is a subclass of any of multiple other classes.
Arguments class Classe à vérifier pour être une sous-classe.
class ou tuple of classes Classe ou tuple de classes par rapport auquel le premier argument doit être vérifié.
Valeur de retour Boolean Retourne si la classe est une sous-classe de l'une des classes données dans le second argument.

Valeur renvoyée par issubclass()

Le issubclass(class, classes) la méthode renvoie True si la classe est une sous-classe de l'une des classes données dans le deuxième argument. Sinon, il renvoie False .

Exercice Shell interactif :Comprendre issubclass()

Considérez le code interactif suivant :

Exercice : L'une des sorties est False . Lequel ?


Mais avant de continuer, je suis ravi de vous présenter mon nouveau livre Python Python One-Liners (Lien Amazon).

Si vous aimez les one-liners, vous allez adorer le livre. Il vous apprendra tout ce qu'il y a à savoir sur une seule ligne de code Python. Mais c'est aussi une introduction à l'informatique , science des données, apprentissage automatique et algorithmes. L'univers en une seule ligne de Python !

Le livre est sorti en 2020 avec l'éditeur de livres de programmation de classe mondiale NoStarch Press (San Francisco).

Lien :https://nostarch.com/pythononeliners


Python issubclass() contre isinstance()

Python a deux fonctions intégrées similaires mais différentes issubclass() et isinstance() .

  • La fonction issubclass() vérifie si une classe est une sous-classe d'une autre classe.
  • La fonction isinstance() vérifie si un objet est une instance d'une classe.

Ainsi, la différence entre issubclass() et isinstance() est que le premier concerne la relation entre deux classes et le dernier concerne la relation entre une instance et une classe .

Voici un exemple :

class Car:
    pass

class Porsche(Car):
    speed = 200 #mph

print(issubclass(Porsche, Car))
# True

your_car = Porsche()
print(isinstance(your_car, Car))
# True1

Résumé

issubclass(X, Y) intégré de Python la fonction prend une classe X et une classe Y et renvoie True si le X est une instance de Y et sinon False .

class Car:
    pass

class Porsche(Car):
    speed = 200 #mph

print(issubclass(Porsche, Car))
# True

L'argument Y peut aussi être un tuple auquel cas il vérifie si X est une sous-classe de n'importe quelle classe du tuple, comme dans issubclass(X, (class_1, class_2, ...)) .

print(issubclass(Porsche, (int, float, Car)))
# True

J'espère que vous avez apprécié l'article! Pour améliorer votre formation Python, vous pouvez rejoindre la populaire et gratuite Finxter Email Academy :

Voulez-vous améliorer vos compétences Python d'une manière amusante et facile à consommer ? Considérez les ressources suivantes et devenez un maître codeur !


Post précédent