Автор оригинала: Pankaj Kumar.
Эй, ребята! Сегодня мы здесь с еще одним учебником по теме Python Issubclass () Метод Отказ
Итак, давайте поправляемся в тему.
Что такое Python Issubclass ()?
Python Issubclass ()
Метод – это Встроенный Метод, который проверяет, является ли пропущенный класс A подкласс указанного ClassInfo
(Может быть класс или кортеж классовых объектов). Это возвращает Правда
Если класс является подклассом (прямым, косвенным или виртуальным ) ClassInfo. Или остальное, возвращает Ложь
Отказ В любом другом случае A Типеррор
Исключение поднимается.
issubclass(class, classinfo)
Класс
это название класса, которое мы хотим подтвердить, это подкласс ClassInfo
или нет. Если ClassInfo является кортежом классов, функция проверяет одинаковую для каждого из классов, представляемых в нем.
Итак, теперь, когда у нас есть основное представление о том, что Issubclass ()
Давайте посмотрим на несколько примеров, чтобы получить лучшее понимание.
Использование метода Python Issubclass ()
В этом разделе мы собираемся иметь дело с другими способами, мы можем использовать Python Issubclass ()
метод. Для обоих случаев, когда мы проходим ClassInfo
как имя класса, а также кортеж объектов класса.
1. Python Issubclass () в наследстве
Когда мы говорим о Наследование , концепция родительских и детских классов очень важно. Когда ребенок наследует от родитель Класс, оно происходит или расширяет свойства его. На данный момент ребенок Говорят, что является подклассом родитель класс.
Следовательно, Issubclass ()
Метод приходит удобно, когда мы хотим получить информацию о наследстве класса. Или проверьте, наследуется ли он из другого класса или нет.
Итак, давайте возьмем пример.
class Animals: pass class Humans(Animals): pass class Men(Humans): pass class Women(Humans): pass print("issubclass(Women, Humans) :", issubclass(Women, Humans)) print("issubclass(Men, Humans) :", issubclass(Men, Humans)) print("issubclass(Women, Men) :", issubclass(Women, Men)) #both are child of the same Humans Class print("issubclass(Humans, Animals) :", issubclass(Humans, Animals)) print("issubclass(Animals, Humans) :", issubclass(Animals, Humans)) #not the opposite print("issubclass(Women, Animals) :", issubclass(Women, Animals)) #multi-level inheritance print("issubclass(Animals, object) :", issubclass(Animals, object)) #object is the baseclass of all classes
Выход:
Здесь Животные
Родительский класс с ребенком Люди
Отказ Два класса, Мужчины
и Женщины
снова наследует от Люди
Класс ( многоуровневое наследование ). Следовательно, оба Мужчины
и Женщины
Класс – подклассы Люди
а также Животные
Отказ И Люди
это подкласс Животные
Отказ
Это объясняет на вершину 6 полученные результаты.
Далее для последнего случая, мы получаем Правда
Отказ Это из-за того, что все классы в Python являются подклассами объект
класс.
2. Python Issubclass () с кортежом классов
Теперь давайте попробуем рассмотрение ClassInfo
как кортеж классов. Посмотрите на пример ниже.
class Animals: pass class Humans(Animals): pass class Men(Humans): pass class Women(Humans): pass print("issubclass(Men, (str, list, tuple)) :", issubclass(Men, (str, list, tuple))) print("issubclass(Men, (str, list, Humans)) :", issubclass(Men, (str, list, Humans))) print("issubclass(Women, (str, list, Women)) :", issubclass(Women, (str, dict, Women))) #A class is a subclass of itself in Python
Выход:
Опять здесь мы взяли то же самое Наследование пример. Как упоминалось ранее, на этот раз ClassInfo
передается как кортеж классовых объектов. В этом случае функция проверяет, является ли пропущенный класс подклассом любого из объектов класса в ClassInfo кортеж
Для самого первого результата Мужчины
Очевидно, не подкласс любого из утра , Список или кортеж классы. Итак, мы получаем Ложь
Отказ
Для следующего случая мужчины снова не подкласс ул. Или списка, а подкласс людей. Следовательно, мы получаем истину в результате.
Наконец, для последнего случая, мы получаем Правда С Женщины
это подкласс самого. Это из-за того, что в Python каждый класс является подклассом самого.
Заключение
Так что это за сегодня. Мы узнали о Python Issubclass ()
метод.
Для любых дополнительных вопросов не стесняйтесь написать его в комментариях ниже.
Рекомендации
- Python Issubclass () – Документация Python 2,
- Issubclass () – Документация Python 3,
- История и дизайн Python: почему iSsubclass () вместо богатых сравнений? – Вопрос штакотов.