# Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. # docs-es@python.org / # https://mail.python.org/mailman3/lists/docs-es.python.org/ # Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to # get the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-10-16 21:42+0200\n" "PO-Revision-Date: 2021-08-02 19:39+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" "Language-Team: python-doc-es\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.9.1\n" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" msgstr "Modelo de ejecución" #: ../Doc/reference/executionmodel.rst:15 msgid "Structure of a program" msgstr "Estructura de un programa" #: ../Doc/reference/executionmodel.rst:19 msgid "" "A Python program is constructed from code blocks. A :dfn:`block` is a piece " "of Python program text that is executed as a unit. The following are blocks: " "a module, a function body, and a class definition. Each command typed " "interactively is a block. A script file (a file given as standard input to " "the interpreter or specified as a command line argument to the interpreter) " "is a code block. A script command (a command specified on the interpreter " "command line with the :option:`-c` option) is a code block. A module run as " "a top level script (as module ``__main__``) from the command line using a :" "option:`-m` argument is also a code block. The string argument passed to the " "built-in functions :func:`eval` and :func:`exec` is a code block." msgstr "" "Un programa de Python se construye a partir de bloques de código. Un :dfn:" "`block` es una parte del texto del programa Python que se ejecuta como una " "unidad. Los siguientes son bloques: un módulo, un cuerpo de función y una " "definición de clase. Cada comando escrito de forma interactiva es un bloque. " "Un archivo de secuencia de comandos (un archivo proporcionado como entrada " "estándar al intérprete o especificado como un argumento de línea de comando " "para el intérprete) es un bloque de código. Un comando de secuencia de " "comandos (un comando especificado en la línea de comandos del intérprete con " "la opción: :option:`-c`) es un bloque de código. Un módulo que se ejecuta " "como un script de nivel superior (como módulo ``__main__``) desde la línea " "de comando usando un argumento :option:`-m` también es un bloque de código. " "El argumento de cadena pasado a las funciones integradas :func:`eval` y :" "func:`exec` es un bloque de código." #: ../Doc/reference/executionmodel.rst:33 msgid "" "A code block is executed in an :dfn:`execution frame`. A frame contains " "some administrative information (used for debugging) and determines where " "and how execution continues after the code block's execution has completed." msgstr "" "Un bloque de código se ejecuta en un :dfn:`execution frame`. Un marco " "contiene alguna información administrativa (que se usa para depuración) y " "determina dónde y cómo continuará la ejecución una vez que el bloque de " "código se haya completado." #: ../Doc/reference/executionmodel.rst:40 msgid "Naming and binding" msgstr "Nombres y vínculos" #: ../Doc/reference/executionmodel.rst:49 msgid "Binding of names" msgstr "Vinculación de nombres" #: ../Doc/reference/executionmodel.rst:55 msgid "" ":dfn:`Names` refer to objects. Names are introduced by name binding " "operations." msgstr "" "Los :dfn:`Names` refieren a objetos. Los nombres se introducen por las " "operaciones de vinculación de nombre (*name binding operations*)." #: ../Doc/reference/executionmodel.rst:59 msgid "" "The following constructs bind names: formal parameters to functions, :" "keyword:`import` statements, class and function definitions (these bind the " "class or function name in the defining block), and targets that are " "identifiers if occurring in an assignment, :keyword:`for` loop header, or " "after :keyword:`!as` in a :keyword:`with` statement or :keyword:`except` " "clause. The :keyword:`!import` statement of the form ``from ... import *`` " "binds all names defined in the imported module, except those beginning with " "an underscore. This form may only be used at the module level." msgstr "" "Las siguientes construcciones vinculan nombres: parámetros formales a las " "funciones, declaraciones :keyword:`import`, definiciones de función y de " "clase (éstas vinculan el nombre de la clase o función en el bloque de " "definición), y objetivos que son identificadores si ocurren en una " "asignación, encabezados de bucles :keyword:`for`, o luego de :keyword:`!as` " "en una declaración :keyword:`with` o una cláusula :keyword:`except`. La " "declaración :keyword:`!import` de la forma ``from ... import *`` vincula " "todos los nombres definidos en el módulo importado, excepto aquellos que " "comienzan con un guión bajo. Esta forma solamente puede ser usada a nivel de " "módulo." #: ../Doc/reference/executionmodel.rst:69 msgid "" "A target occurring in a :keyword:`del` statement is also considered bound " "for this purpose (though the actual semantics are to unbind the name)." msgstr "" "Un objetivo que aparece en una sentencia :keyword:`del` también se considera " "vinculado para este propósito (aunque la semántica real es desvincular el " "nombre)." #: ../Doc/reference/executionmodel.rst:72 msgid "" "Each assignment or import statement occurs within a block defined by a class " "or function definition or at the module level (the top-level code block)." msgstr "" "Cada declaración de asignación o importación ocurre dentro de un bloque " "determinado por una definición de clase o de función, o a nivel de módulo " "(el bloque de código de máximo nivel)." #: ../Doc/reference/executionmodel.rst:77 msgid "" "If a name is bound in a block, it is a local variable of that block, unless " "declared as :keyword:`nonlocal` or :keyword:`global`. If a name is bound at " "the module level, it is a global variable. (The variables of the module " "code block are local and global.) If a variable is used in a code block but " "not defined there, it is a :dfn:`free variable`." msgstr "" "Si un nombre está vinculado en un bloque, es una variable local en ese " "bloque, salvo que sea declarado como :keyword:`nonlocal` o :keyword:" "`global`. Si un nombre está vinculado a nivel de módulo, es una variable " "global. (Las variables del bloque de código del módulo son locales y " "globales.) Si una variable se una en un bloque de código pero no está " "definida ahí, es una :dfn:`free variable`." #: ../Doc/reference/executionmodel.rst:83 msgid "" "Each occurrence of a name in the program text refers to the :dfn:`binding` " "of that name established by the following name resolution rules." msgstr "" "Cada ocurrencia de un nombre en el texto del programa se refiere al :dfn:" "`binding` de ese nombre, establecido por las siguientes reglas de resolución " "de nombres." #: ../Doc/reference/executionmodel.rst:89 msgid "Resolution of names" msgstr "Resolución de nombres" #: ../Doc/reference/executionmodel.rst:93 msgid "" "A :dfn:`scope` defines the visibility of a name within a block. If a local " "variable is defined in a block, its scope includes that block. If the " "definition occurs in a function block, the scope extends to any blocks " "contained within the defining one, unless a contained block introduces a " "different binding for the name." msgstr "" "Un :dfn:`scope` define la visibilidad de un nombre en un bloque. Si una " "variable local se define en un bloque, su ámbito (*scope*) incluye ese " "bloque. Si la definición ocurre en un bloque de función, el ámbito se " "extiende a cualquier bloque contenido en el bloque en donde está la " "definición, a menos que uno de los bloques contenidos introduzca un vínculo " "diferente para el nombre." #: ../Doc/reference/executionmodel.rst:101 msgid "" "When a name is used in a code block, it is resolved using the nearest " "enclosing scope. The set of all such scopes visible to a code block is " "called the block's :dfn:`environment`." msgstr "" "Cuando un nombre es utilizado en un bloque de código, se resuelve utilizando " "el ámbito de cierre más cercano. El conjunto de todos esos ámbitos visibles " "para un bloque de código se llama el :dfn:`environment` del bloque." #: ../Doc/reference/executionmodel.rst:109 msgid "" "When a name is not found at all, a :exc:`NameError` exception is raised. If " "the current scope is a function scope, and the name refers to a local " "variable that has not yet been bound to a value at the point where the name " "is used, an :exc:`UnboundLocalError` exception is raised. :exc:" "`UnboundLocalError` is a subclass of :exc:`NameError`." msgstr "" "Cuando un nombre no se encuentra, se lanza una excepción :exc:`NameError`. " "Si el ámbito actual es una función, y el nombre se refiere a una variable " "local que todavía no ha sido vinculada a un valor en el punto en el que " "nombre es utilizado, se lanza una excepción :exc:`UnboundLocalError`. :exc:" "`UnboundLocalError` es una subclase de :exc:`NameError`." #: ../Doc/reference/executionmodel.rst:115 msgid "" "If a name binding operation occurs anywhere within a code block, all uses of " "the name within the block are treated as references to the current block. " "This can lead to errors when a name is used within a block before it is " "bound. This rule is subtle. Python lacks declarations and allows name " "binding operations to occur anywhere within a code block. The local " "variables of a code block can be determined by scanning the entire text of " "the block for name binding operations." msgstr "" "Si una operación de vinculación de nombre ocurre en cualquier parte dentro " "de un bloque de código, todos los usos del nombre dentro de ese bloque son " "tratados como referencias al bloque actual. Esto puede llevar a errores " "cuando el nombre es utilizado dentro del bloque antes de su vinculación. " "Esta regla es sutil. Python carece de declaraciones y permite que las " "operaciones de vinculación de nombres ocurran en cualquier lugar dentro del " "bloque de código. Las variables locales de un bloque de código pueden " "determinarse buscando operaciones de vinculación de nombres en el texto " "completo del bloque." #: ../Doc/reference/executionmodel.rst:122 msgid "" "If the :keyword:`global` statement occurs within a block, all uses of the " "names specified in the statement refer to the bindings of those names in the " "top-level namespace. Names are resolved in the top-level namespace by " "searching the global namespace, i.e. the namespace of the module containing " "the code block, and the builtins namespace, the namespace of the module :mod:" "`builtins`. The global namespace is searched first. If the names are not " "found there, the builtins namespace is searched. The :keyword:`!global` " "statement must precede all uses of the listed names." msgstr "" "Si la declaración :keyword:`global` ocurre dentro de un bloque, todos los " "usos del nombre especificado en la declaración se refieren a la vinculación " "que ese nombre tiene en el espacio de nombres (*namespace*) de nivel " "superior. Los nombres se resuelven en el espacio de nombres de nivel " "superior buscando en el espacio de nombres global, es decir, el espacio de " "nombres del módulo que contiene el bloque de código, y en el espacio de " "nombres incorporado, el *namespace* del módulo :mod:`builtins`. La búsqueda " "se realiza primero en el espacio de nombres global. Si el nombre no se " "encuentra ahí, se busca en el espacio de nombres incorporado (*builtins " "namespace*). La declaración :keyword:`!global` debe preceder a todos los " "usos del nombre." #: ../Doc/reference/executionmodel.rst:131 msgid "" "The :keyword:`global` statement has the same scope as a name binding " "operation in the same block. If the nearest enclosing scope for a free " "variable contains a global statement, the free variable is treated as a " "global." msgstr "" "La declaración :keyword:`global` tiene el mismo ámbito que una operación de " "vinculación de nombre en el mismo bloque. Si el ámbito de cierre más cercano " "para una variable libre contiene una declaración global, se trata a la " "variable libre como global." #: ../Doc/reference/executionmodel.rst:137 msgid "" "The :keyword:`nonlocal` statement causes corresponding names to refer to " "previously bound variables in the nearest enclosing function scope. :exc:" "`SyntaxError` is raised at compile time if the given name does not exist in " "any enclosing function scope." msgstr "" "La declaración :keyword:`nonlocal` causa que los nombre correspondientes se " "refieran a variables previamente vinculadas en el ámbito de la función de " "cierre más cercano. Se lanza un :exc:`SyntaxError` en tiempo de compilación " "si el nombre dado no existe en ningún ámbito de las funciones dentro de las " "cuales está." #: ../Doc/reference/executionmodel.rst:144 msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." msgstr "" "El espacio de nombres (*namespace*) para un módulo se crea automáticamente " "la primera vez que se importa el módulo. El módulo principal de un *script* " "siempre se llama :mod:`__main__`." #: ../Doc/reference/executionmodel.rst:147 msgid "" "Class definition blocks and arguments to :func:`exec` and :func:`eval` are " "special in the context of name resolution. A class definition is an " "executable statement that may use and define names. These references follow " "the normal rules for name resolution with an exception that unbound local " "variables are looked up in the global namespace. The namespace of the class " "definition becomes the attribute dictionary of the class. The scope of names " "defined in a class block is limited to the class block; it does not extend " "to the code blocks of methods -- this includes comprehensions and generator " "expressions since they are implemented using a function scope. This means " "that the following will fail::" msgstr "" "Los bloques de definición de clase y los argumentos para :func:`exec` y :" "func:`eval` son especiales en el contexto de la resolución de nombres. Una " "definición de clase es una declaración ejecutable que puede usar y definir " "nombres. Estas referencias siguen las reglas normales para la resolución de " "nombres con la excepción de que se buscan las variables locales no " "vinculadas en el espacio de nombres global. El espacio de nombres de la " "definición de clase se vuelve el diccionario de atributos de la clase. El " "ámbito de nombres definido en un bloque de clase está limitado a dicho " "bloque; no se extiende a los bloques de código de los métodos. Esto incluye " "las comprensiones y las expresiones generadoras (*generator expressions*), " "dado que están implementadas usando el alcance de función. Esto implica que " "lo siguiente fallará::" #: ../Doc/reference/executionmodel.rst:165 msgid "Builtins and restricted execution" msgstr "Integraciones y ejecución restringida" #: ../Doc/reference/executionmodel.rst:171 msgid "" "Users should not touch ``__builtins__``; it is strictly an implementation " "detail. Users wanting to override values in the builtins namespace should :" "keyword:`import` the :mod:`builtins` module and modify its attributes " "appropriately." msgstr "" "Los usuarios no deberían tocar ``__builtins__``; es un detalle de la " "implementación en sentido estricto. Los usuarios que quieran sobreescribir " "valores en los espacios de nombres incorporados deberían usar :keyword:" "`import` con el módulo :mod:`builtins` y modificar sus atributos de un modo " "adecuado." #: ../Doc/reference/executionmodel.rst:176 msgid "" "The builtins namespace associated with the execution of a code block is " "actually found by looking up the name ``__builtins__`` in its global " "namespace; this should be a dictionary or a module (in the latter case the " "module's dictionary is used). By default, when in the :mod:`__main__` " "module, ``__builtins__`` is the built-in module :mod:`builtins`; when in any " "other module, ``__builtins__`` is an alias for the dictionary of the :mod:" "`builtins` module itself." msgstr "" "El espacio de nombres incorporado (*builtin namespace*) asociado a la " "ejecución de un bloque de código es encontrado buscando el nombre " "``__builtins__`` en su espacio de nombres global; debería ser un diccionario " "o un módulo (en este último caso, se usa el diccionario del módulo). Por " "defecto, en el módulo :mod:`__main__`, ``__builtins__`` es el módulo :mod:" "`builtins`. En cualquier otro módulo, ``__builtins__`` es un alias para el " "diccionario del propio módulo :mod:`builtins`." #: ../Doc/reference/executionmodel.rst:188 msgid "Interaction with dynamic features" msgstr "Interacción con funcionalidades dinámicas" #: ../Doc/reference/executionmodel.rst:190 msgid "" "Name resolution of free variables occurs at runtime, not at compile time. " "This means that the following code will print 42::" msgstr "" "La resolución de variables libres sucede en tiempo de ejecución, no en " "tiempo de compilación. Esto significa que el siguiente código va a mostrar " "42::" #: ../Doc/reference/executionmodel.rst:201 msgid "" "The :func:`eval` and :func:`exec` functions do not have access to the full " "environment for resolving names. Names may be resolved in the local and " "global namespaces of the caller. Free variables are not resolved in the " "nearest enclosing namespace, but in the global namespace. [#]_ The :func:" "`exec` and :func:`eval` functions have optional arguments to override the " "global and local namespace. If only one namespace is specified, it is used " "for both." msgstr "" "Las funciones :func:`eval` y :func:`exec` no tienen acceso al entorno " "completo para resolver nombres. Los nombres pueden resolverse en los " "espacios de nombres locales y globales de la persona que llama. Las " "variables libres no se resuelven en el espacio de nombres adjunto más " "cercano, sino en el espacio de nombres global. [#]_ Las funciones :func:" "`exec` y :func:`eval` tienen argumentos opcionales para anular el espacio de " "nombres global y local. Si solo se especifica un espacio de nombres, se usa " "para ambos." #: ../Doc/reference/executionmodel.rst:212 msgid "Exceptions" msgstr "Excepciones" #: ../Doc/reference/executionmodel.rst:223 msgid "" "Exceptions are a means of breaking out of the normal flow of control of a " "code block in order to handle errors or other exceptional conditions. An " "exception is *raised* at the point where the error is detected; it may be " "*handled* by the surrounding code block or by any code block that directly " "or indirectly invoked the code block where the error occurred." msgstr "" "Las excepciones son un medio para salir del flujo de control normal de un " "bloque de código, para gestionar errores u otras condiciones excepcionales. " "Una excepción es *lanzada* (*raised*) en el momento en que se detecta el " "error; puede ser *gestionada* (*handled*) por el bloque de código que la " "rodea o por cualquier bloque de código que directa o indirectamente ha " "invocado al bloque de código en el que ocurrió el error." #: ../Doc/reference/executionmodel.rst:229 msgid "" "The Python interpreter raises an exception when it detects a run-time error " "(such as division by zero). A Python program can also explicitly raise an " "exception with the :keyword:`raise` statement. Exception handlers are " "specified with the :keyword:`try` ... :keyword:`except` statement. The :" "keyword:`finally` clause of such a statement can be used to specify cleanup " "code which does not handle the exception, but is executed whether an " "exception occurred or not in the preceding code." msgstr "" "El intérprete Python lanza una excepción cuando detecta un error en tiempo " "de ejecución (como una división por cero). Un programa Python también puede " "lanzar una excepción explícitamente, con la declaración :keyword:`raise`. " "Los gestores de excepciones se especifican con la declaración :keyword:" "`try` ... :keyword:`except`. La cláusula :keyword:`finally` de tales " "declaraciones puede utilizarse para especificar código de limpieza que no es " "el que gestiona la excepción, sino que se ejecutará en cualquier caso, tanto " "cuando la excepción ha ocurrido en el código que la precede, como cuando " "esto no ha sucedido." #: ../Doc/reference/executionmodel.rst:239 msgid "" "Python uses the \"termination\" model of error handling: an exception " "handler can find out what happened and continue execution at an outer level, " "but it cannot repair the cause of the error and retry the failing operation " "(except by re-entering the offending piece of code from the top)." msgstr "" "Python usa el modelo de gestión de errores de \"terminación" "\" (\"*termination*\"): un gestor de excepción puede descubrir qué sucedió y " "continuar la ejecución en un nivel exterior, pero no puede reparar la causa " "del error y reintentar la operación que ha fallado (excepto que se reingrese " "al trozo de código fallido desde su inicio)." #: ../Doc/reference/executionmodel.rst:246 msgid "" "When an exception is not handled at all, the interpreter terminates " "execution of the program, or returns to its interactive main loop. In " "either case, it prints a stack traceback, except when the exception is :exc:" "`SystemExit`." msgstr "" "Cuando una excepción no está gestionada en absoluto, el intérprete termina " "la ejecución del programa, o retorna a su bucle principal interactivo. En " "cualquier caso, imprime un seguimiento de pila, excepto cuando la excepción " "es :exc:`SystemExit`." #: ../Doc/reference/executionmodel.rst:250 msgid "" "Exceptions are identified by class instances. The :keyword:`except` clause " "is selected depending on the class of the instance: it must reference the " "class of the instance or a base class thereof. The instance can be received " "by the handler and can carry additional information about the exceptional " "condition." msgstr "" "Las excepciones están identificadas por instancias de clase. Se selecciona " "la cláusula :keyword:`except` dependiendo de la clase de la instancia: debe " "referenciar a la clase de la instancia o a una clase base de la misma. La " "instancia puede ser recibida por el gestor y puede contener información " "adicional acerca de la condición excepcional." #: ../Doc/reference/executionmodel.rst:257 msgid "" "Exception messages are not part of the Python API. Their contents may " "change from one version of Python to the next without warning and should not " "be relied on by code which will run under multiple versions of the " "interpreter." msgstr "" "Los mensajes de excepción no forman parte de la API Python. Su contenido " "puede cambiar entre una versión de Python y la siguiente sin ningún tipo de " "advertencia; el código que corre bajo múltiples versiones del intérprete no " "debería basarse en estos mensajes." #: ../Doc/reference/executionmodel.rst:261 msgid "" "See also the description of the :keyword:`try` statement in section :ref:" "`try` and :keyword:`raise` statement in section :ref:`raise`." msgstr "" "Mira también la descripción de la declaración :keyword:`try` en la sección :" "ref:`try`, y la declaración :keyword:`raise` en la sección :ref:`raise`." #: ../Doc/reference/executionmodel.rst:266 msgid "Footnotes" msgstr "Notas al pie" #: ../Doc/reference/executionmodel.rst:267 msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." msgstr "" "Esta limitación se da porque el código ejecutado por estas operaciones no " "está disponible en el momento en que se compila el módulo."