El sistema de ayuda de Python

    Al escribir y ejecutar sus programas Python, es posible que se quede atascado y necesite ayuda. Es posible que necesite conocer el significado de ciertos m贸dulos, clases, funciones, palabras clave, etc. La buena noticia es que Python viene con un sistema de ayuda incorporado. Esto significa que no tiene que buscar ayuda fuera de Python.

    En este art铆culo, aprender谩 a utilizar el sistema de ayuda integrado de Python.

    Funci贸n de ayuda de Python ()

    Esta funci贸n nos ayuda a obtener la documentaci贸n de una determinada clase, funci贸n, variable, m贸dulo, etc. La funci贸n debe usarse en la consola de Python para obtener detalles de varios objetos de Python.

    Pasar un objeto a la funci贸n help ()

    El python help() La funci贸n tiene la siguiente sintaxis:

    >>> help(object)
    

    En la sintaxis anterior, el object par谩metro es el nombre del objeto sobre el que necesita obtener ayuda.

    Por ejemplo, para saber m谩s sobre Python print funci贸n, escriba el siguiente comando en la consola de Python:

    >>> help(print)
    

    Salida:

    Help on built-in function print in module builtins:
    
    print(...)
        print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
        
        Prints the values to a stream, or to sys.stdout by default.
        Optional keyword arguments:
        file:  a file-like object (stream); defaults to the current sys.stdout.
        sep:   string inserted between values, default a space.
        end:   string appended after the last value, default a newline.
        flush: whether to forcibly flush the stream.
    

    Para obtener ayuda para dict class, escriba lo siguiente en la consola de Python:

    >>> help(dict)
    

    Salida:

    Help on class dict in module builtins:
    
    class dict(object)
     |  dict() -> new empty dictionary
     |  dict(mapping) -> new dictionary initialized from a mapping object's
     |      (key, value) pairs
     |  dict(iterable) -> new dictionary initialized as if via:
     |      d = {}
     |      for k, v in iterable:
     |          d[k] = v
     |  dict(**kwargs) -> new dictionary initialized with the name=value pairs
     |      in the keyword argument list.  For example:  dict(one=1, two=2)
     |  
     |  Methods defined here:
     |  
     |  __contains__(self, key, /)
     |      True if D has a key k, else False.
     |  
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |  
     |  __eq__(self, value, /)
     |      Return self==value.
     |  
     |  __ge__(self, value, /)
     |      Return self>=value.
     |  
    
    ...
    

    Tambi茅n puede pasar un objeto de lista real al help() funci贸n:

    >>> help(['a', 'b', 'c'])
    

    Salida:

    Help on list object:
    
    class list(object)
     |  list() -> new empty list
     |  list(iterable) -> new list initialized from iterable's items
     |  
     |  Methods defined here:
     |  
     |  __add__(self, value, /)
     |      Return self+value.
     |  
     |  __contains__(self, key, /)
     |      Return key in self.
     |  
     |  __delitem__(self, key, /)
     |      Delete self[key].
     |  
     |  __eq__(self, value, /)
     |      Return self==value.
     |  
     |  __ge__(self, value, /)
     |      Return self>=value.
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
    
    ...
    

    Podemos ver que cuando pasa un objeto al help() funci贸n, se imprime su documentaci贸n o p谩gina de ayuda. En la siguiente secci贸n, aprender谩 a pasar argumentos de cadena a la help() funci贸n.

    Pasar un argumento de cadena para ayudar ()

    Si pasa una cadena como argumento, la cadena se tratar谩 como el nombre de una funci贸n, m贸dulo, palabra clave, m茅todo, clase o tema de documentaci贸n y se imprimir谩 la p谩gina de ayuda correspondiente. Para marcarlo como un argumento de cadena, enci茅rrelo entre comillas simples o dobles.

    Por ejemplo:

    >>> help('print')
    

    Salida:

    Help on built-in function print in module builtins:
    
    print(...)
        print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
        
        Prints the values to a stream, or to sys.stdout by default.
        Optional keyword arguments:
        file:  a file-like object (stream); defaults to the current sys.stdout.
        sep:   string inserted between values, default a space.
        end:   string appended after the last value, default a newline.
        flush: whether to forcibly flush the stream.
    

    Aunque pasamos ‘imprimir’ como un argumento de cadena, todav铆a obtuvimos la documentaci贸n para Python print funci贸n. Aqu铆 hay otro ejemplo:

    >>> help('def')
    

    Salida:

    Function definitions
    ********************
    
    A function definition defines a user-defined function object (see
    section *The standard type hierarchy*):
    
       funcdef        ::= [decorators] "def" funcname "(" [parameter_list] ")" ["->" expression] ":" suite
       decorators     ::= decorator+
       decorator      ::= "@" dotted_name ["(" [parameter_list [","]] ")"] NEWLINE
       dotted_name    ::= identifier ("." identifier)*
       parameter_list ::= (defparameter ",")*
                          | "*" [parameter] ("," defparameter)* ["," "**" parameter]
                          | "**" parameter
                          | defparameter [","] )
       parameter      ::= identifier [":" expression]
       defparameter   ::= parameter ["=" expression]
       funcname       ::= identifier
    
    A function definition is an executable statement.  Its execution binds
    the function name in the current local namespace to a function object
    (a wrapper around the executable code for the function).  This
    
    ...
    

    Aqu铆 pasamos “def” como un argumento de cadena al help() function y devolvi贸 la documentaci贸n para definir funciones.

    Si no se encuentra ning煤n objeto, m茅todo, funci贸n, clase o m贸dulo que coincida, se le notificar谩. Por ejemplo:

    >>> help('qwerty')
    

    Salida:

    No Python documentation found for 'qwerty'.
    Use help() to get the interactive help utility.
    Use help(str) for help on the str class.
    

    Se nos notifica que no se encontr贸 documentaci贸n para nuestra cadena.

    A veces, es posible que necesitemos ayuda sobre una determinada funci贸n que est谩 definida en una determinada biblioteca de Python. Esto requiere que primero importemos la biblioteca. Un buen ejemplo es cuando necesitamos obtener la documentaci贸n para el log funci贸n definida en Python math biblioteca. En este caso, primero debemos importar el math biblioteca entonces llamamos a la help() funciona como se demuestra a continuaci贸n:

    >>> from math import log
    >>> help(log)
    

    Salida:

    Help on built-in function log in module math:
    
    log(...)
        log(x[, base])
        
        Return the logarithm of x to the given base.
        If the base not specified, returns the natural logarithm (base e) of x.
    

    Usar help () sin argumento

    los help() La funci贸n se puede utilizar sin un argumento. Si ejecuta la funci贸n sin un argumento, la utilidad de ayuda interactiva de Python se iniciar谩 en la consola del int茅rprete. Solo tienes que escribir el siguiente comando en la consola de Python:

    >>> help()
    

    Esto devolver谩 la utilidad de ayuda de Python en la que puede escribir el nombre del objeto sobre el que necesita obtener ayuda. Por ejemplo:

    help> print
    

    Salida:

    Help on built-in function print in module builtins:
    
    print(...)
        print(value, ..., sep=' ', end='n', file=sys.stdout, flush=False)
        
        Prints the values to a stream, or to sys.stdout by default.
        Optional keyword arguments:
        file:  a file-like object (stream); defaults to the current sys.stdout.
        sep:   string inserted between values, default a space.
        end:   string appended after the last value, default a newline.
        flush: whether to forcibly flush the stream.
    

    Para volver al mensaje anterior, simplemente presione “q”.

    Aqu铆 hay otro ejemplo:

    help> return
    

    Salida:

    The "return" statement
    **********************
    
       return_stmt ::= "return" [expression_list]
    
    "return" may only occur syntactically nested in a function definition,
    not within a nested class definition.
    
    If an expression list is present, it is evaluated, else "None" is
    substituted.
    
    "return" leaves the current function call with the expression list (or
    "None") as return value.
    
    When "return" passes control out of a "try" statement with a "finally"
    clause, that "finally" clause is executed before really leaving the
    function.
    
    In a generator function, the "return" statement indicates that the
    generator is done and will cause "StopIteration" to be raised. The
    returned value (if any) is used as an argument to construct
    "StopIteration" and becomes the "StopIteration.value" attribute.
    
    Related help topics: FUNCTIONS
    

    Para salir de la utilidad de ayuda y volver a la consola de Python, simplemente escriba “salir” y presione la tecla Intro:

    help> quit
    

    Salida:

    You are now leaving help and returning to the Python interpreter.
    If you want to ask for help on a particular object directly from the
    interpreter, you can type "help(object)".  Executing "help('string')"
    has the same effect as typing a particular string at the help> prompt.
    >>>
    

    En la siguiente secci贸n, discutiremos c贸mo definir help() para nuestros objetos personalizados.

    Definici贸n de documentos de ayuda para clases y funciones personalizadas

    Es posible para nosotros definir la salida de help() funci贸n para nuestras funciones y clases personalizadas mediante la definici贸n de una cadena de documentos (cadena de documento). En Python, la primera cadena de comentarios agregada al cuerpo de un m茅todo se trata como su cadena de documentos. El comentario debe estar rodeado de tres comillas dobles. Por ejemplo:

    def product(a, b):
        """
        This function multiplies two given integers, a and b
        :param x: integer
        :param y: integer
        :returns: integer
        """
        return a * b
    

    En el ejemplo anterior, hemos definido una funci贸n llamada product. Esta funci贸n multiplica dos valores enteros, a y b se le pasa como argumentos / par谩metros. Vea el comentario entre tres comillas dobles:

        """
        This function multiplies two given integers, a and b
        :param x: integer
        :param y: integer
        :returns: integer
        """
    

    Esto se tratar谩 como la cadena de documentos de la funci贸n. product.

    Ahora, cree un nuevo archivo y as铆gnele el nombre “myfile.py”. Agregue el siguiente c贸digo al archivo:

    def product(a, b):
        """
        This function multiplies two given integers, a and b
        :param x: integer
        :param y: integer
        :returns: integer
        """
        return a * b
    
    class Student:
        """
        Student class in Python. It will store student details
        """
        admission = 0
        name=""
    
        def __init__(self, adm, n):
            """
            A constructor of the student object
            :param adm: a positive integer,
            :param n: a string
            """
            self.admission = adm
            self.name = n
    

    En el ejemplo anterior, se ha definido una cadena de documentos para una funci贸n, clase y m茅todos.

    Ahora necesitamos demostrar c贸mo podemos obtener la cadena de documentos anterior como documentaci贸n de ayuda en nuestra consola de Python.

    Primero, necesitamos ejecutar el script en la consola para cargar tanto la funci贸n como la definici贸n de clase en el entorno de Python. Podemos usar Python exec() m茅todo para esto. Ejecute el siguiente comando en la consola de Python:

    >>> exec(open("myfile.py").read())
    

    Alternativamente, si ha escrito el c贸digo dentro de Python IDLE, simplemente tiene que ejecutarlo.

    Ahora podemos confirmar si los m贸dulos de funci贸n y clase se han detectado ejecutando el globals() comando en la consola de Python:

    >>> globals()
    

    En mi caso, obtengo el siguiente resultado:

    {'__doc__': None, 'log': <built-in function log>, '__builtins__': <module 'builtins' (built-in)>, '__spec__': None, '__package__': None, '__name__': '__main__', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__file__': 'C:/Users/admin/myfile.py', 'Student': <class '__main__.Student', 'product': <function product at 0x0000000003569B70>}
    

    Como se muestra en la salida anterior, ambos Student y product est谩n en el diccionario de alcance global. Ahora podemos usar el help() funci贸n para obtener ayuda para el Student clase y product funci贸n. Simplemente ejecute el siguiente comando en la consola de Python:

    >>> help('myfile')
    

    Salida:

    Help on module myfile:
    
    NAME
        myfile
    
    CLASSES
        builtins.object
            Student
        
        class Student(builtins.object)
         |  Student class in Python. It will store student details
         |  
         |  Methods defined here:
         |  
         |  __init__(self, adm, n)
         |      A constructor of the student object
         |      :param adm: a positive integer,
         |      :param n: a string
         |  
         |  ----------------------------------------------------------------------
         |  Data descriptors defined here:
         |  
         |  __dict__
         |      dictionary for instance variables (if defined)
         |  
         |  __weakref__
         |      list of weak references to the object (if defined)
         |  
         |  ----------------------------------------------------------------------
         |  Data and other attributes defined here:
         |  
         |  admission = 0
         |  
         |  name=""
    
    FUNCTIONS
        product(a, b)
            This function multiplies two given integers, a and b
            :param x: integer
            :param y: integer
            :returns: integer
    
    FILE
        c:usersadminmyfile.py
    

    Revisemos la documentaci贸n de ayuda para product funci贸n:

    >>> help('myfile.product')
    

    Salida:

    Help on function product in myfile:
    
    myfile.product = product(a, b)
        This function multiplies two given integers, a and b
        :param x: integer
        :param y: integer
        :returns: integer
    

    Ahora, accedamos a la documentaci贸n de ayuda para Student clase:

    >>> help('myfile.Student')
    

    Salida:

    Help on class Student in myfile:
    
    myfile.Student = class Student(builtins.object)
     |  Student class in Python. It will store student details
     |  
     |  Methods defined here:
     |  
     |  __init__(self, adm, n)
     |      A constructor of the student object
     |      :param adm: a positive integer,
     |      :param n: a string
     |  
     |  ----------------------------------------------------------------------
     |  Data descriptors defined here:
     |  
     |  __dict__
     |      dictionary for instance variables (if defined)
     |  
     |  __weakref__
     |      list of weak references to the object (if defined)
     |  
     |  ----------------------------------------------------------------------
     |  Data and other attributes defined here:
     |  
     |  admission = 0
     |  
     |  name=""
     
    

    En la salida, podemos ver la documentaci贸n que escribimos para el Student clase.

    Conclusi贸n

    Python viene con un sistema integrado del cual podemos obtener ayuda con respecto a m贸dulos, clases, funciones y palabras clave. Se puede acceder a esta utilidad de ayuda mediante el uso de Python help() funci贸n en el REPL. Cuando llamamos a esta funci贸n y le pasamos un objeto, devuelve la p谩gina de ayuda o la documentaci贸n del objeto. Cuando ejecutamos la funci贸n sin un argumento, se abre la utilidad de ayuda donde podemos obtener ayuda sobre los objetos de forma interactiva. Finalmente, para obtener ayuda con respecto a nuestras clases y funciones personalizadas, podemos definir cadenas de documentos.

     

    Etiquetas:

    Deja una respuesta

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