__getslice__ en Python

En Python, los métodos Dunder son aquellos métodos que tienen dos prefijos y guiones bajos en el nombre del método. También se les llama métodos mágicos . Dunder significa » guiones bajos dobles «. Se utilizan comúnmente para la sobrecarga del operador. Estos métodos no son invocados directamente por el usuario, sino que son llamados o invocados internamente desde la clase. Algunos ejemplos de métodos de Dunder son __init__, __repr__, __getslice__, __getitem__.

__getslice__()

__getslice__(self, i, j) se llama cuando self[i:j]se invoca el operador de corte, es decir, en un objeto. El objeto devuelto debe ser del mismo tipo que self. Se puede utilizar tanto en secuencias mutables como inmutables.

Nota: __getslice__ está en desuso desde Python 2.0 y en Python 3.x no está disponible. En lugar de esto, usamos el método __getitem__ en python 3.x

Ejemplo 1:

# program to demonstrate __getslice__ method
  
class MyClass:
    def __init__(self, string):
        self.string = string
          
    # method for creating list of words
    def getwords(self):
        return self.string.split()
          
    # method to perform slicing on the
    # list of words
    def __getslice__(self, i, j):
        return self.getwords()[max(0, i):max(0, j)]
  
# Driver Code 
if __name__ == '__main__': 
  
    # object creation
    obj = MyClass("Hello World ABC")
      
    # __getslice__ method called internally
    # from the class
    sliced = obj[0:2]
  
    # print the returned output
    # return type is list
    print(sliced)

PRODUCCIÓN

['Hello', 'World']

Ejemplo 2:

# program to demonstrate __getslice__ method
  
class MyClass:
    def __init__(self, string):
        self.string = string
          
    # method for creating list of words
    def getwords(self):
        return self.string.split()
          
    # method to perform slicing on
    # the list of words
    def __getslice__(self, i, j):
        return self.getwords()[max(0, i):max(0, j)]
  
# Driver Code 
if __name__ == '__main__': 
  
    # object creation
    obj = MyClass("Hello World ABC")
      
    # __getslice__ method called internally
    # from the class
    sliced = obj[0:0]
  
    # print the returned output
    # return type is list
    print(sliced)

PRODUCCIÓN

[]

Publicación traducida automáticamente

Artículo escrito por nishthagoel712 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *