La clase es una colección de datos (variables y métodos). Agrupa datos y funcionalidad juntos. Proporciona todas las características estándar de la programación orientada a objetos. Básicamente es un modelo para crear objetos. La creación de una nueva clase crea un nuevo tipo de objeto, lo que permite crear nuevas instancias de ese tipo.
Ejemplo:
# class 'A' defined class A(object): # Calling Constructor def __init__(self, a): self.a = a print("The value of a:", self.a) # Driver's code c = A(7)
Producción:
The value of a: 7
__subclasscheck__ en Python
__subclasscheck__
es uno de los métodos para personalizar el resultado de issubclass()
la función integrada. Es un método para verificar si una clase es una subclase o no y devuelve True
si la clase se considera como una subclase (directa o indirecta) de otra clase, de lo contrario, devuelve False
. No se puede definir como un método de clase en la clase actual/real. Se implementa en la metaclase, ya que no es para clases ordinarias. Considere el siguiente ejemplo para una mejor comprensión.
Ejemplo: considere una situación en la que desea verificar si un cierto valor está presente como un atributo dentro de una clase usando el issubclass()
método.
# Python program to demonstrate # subclasscheck class A(type): # __subclasscheck__() defined def __subclasscheck__(cls, sub): # Getting the L attribute of # subclass attr = getattr(cls, 'L', []) # Checking if the subclass # is present in the L attribute # of subclass or not if sub in attr: return True return False class B(metaclass = A): # L Attribute L = [1, 2, 3, 4, 5] class C(metaclass = A): # L Attribute L = ["Geeks", "For"] # Driver's code print(issubclass(1, B)) print(issubclass("Geeks", B)) print(issubclass("Geeks", C))
Producción:
True False True
__subclasshook__ en Python
La clase abstracta puede anular __subclasshook__()
el método para personalizar issubclass()
. Devuelve True
cuando se encuentra que una clase es una subclase de una clase ABC, devuelve False
si no lo es y devuelve NotImplemented si la comprobación de la subclase continúa con el mecanismo habitual. Este método se define en la clase ABC con algunas condiciones. Las clases que siguen esas condiciones se consideran una subclase.
Nota: Debe definirse como un método de clase.
Ejemplo:
# Python program to demonstrate # subclasshook from abc import ABCMeta class A(metaclass = ABCMeta): @classmethod def __subclasshook__(cls, C): if cls is A: # condition to check if the # function anyfun() is present # in any sub class or not if any("__anyfun__" in Q.__dict__ for Q in C.__mro__): return True return False class P(object): pass class Q(object): def __anyfun__(self): return 0 # Driver's code print(issubclass(Q, A) ) print(issubclass(P, A) )
Producción:
True False
Publicación traducida automáticamente
Artículo escrito por akritigoswami y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA