# 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/PyCampES/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: 2020-05-05 12:54+0200\n" "PO-Revision-Date: 2020-07-26 09:14-0300\n" "Language-Team: python-doc-es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.8.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Last-Translator: \n" "Language: es\n" "X-Generator: Poedit 2.3\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. The string " "argument passed to the built-in functions :func:`eval` and :func:`exec` is a " "code block." msgstr "" "Un programa Python está construido a partir de bloques de código. Un :dfn:" "`block` es un trozo de texto de un programa Python que se ejecuta como una " "unidad. Los siguientes son bloques: un módulo, el cuerpo de una función y la " "definición de una clase. Cada comando ingresado en el intérprete interactivo " "es un bloque. Un archivo de script (un archivo provisto como entrada " "estándar al intérprete, o especificado como argumento en la línea de comando " "al intérprete) es un bloque de código. Un comando de script (un comando " "especificado en la línea de comandos del intérprete con la opción :option:`-" "c` es un bloque de código. El argumento cadena de caracteres que se envía a " "las funciones incorporadas :func:`eval` y :func:`exec` es también un bloque " "de código." #: ../Doc/reference/executionmodel.rst:31 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:38 msgid "Naming and binding" msgstr "Nombres y vínculos" #: ../Doc/reference/executionmodel.rst:47 msgid "Binding of names" msgstr "Vinculación de nombres" #: ../Doc/reference/executionmodel.rst:53 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*)." # ¿ target == objetivo ? #: ../Doc/reference/executionmodel.rst:57 #, fuzzy 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:67 #, fuzzy 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 ocurre en una declaración :keyword:`del` también está " "considerado como vinculado para este propósito (aunque la semántica real es " "desvincular el nombre)." #: ../Doc/reference/executionmodel.rst:70 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:75 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:81 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:87 msgid "Resolution of names" msgstr "Resolución de nombres" #: ../Doc/reference/executionmodel.rst:91 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." # ¿"the nearest enclosing scope" == "el ámbito que cierre más cerca"? #: ../Doc/reference/executionmodel.rst:99 #, fuzzy 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:107 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:113 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." # Vi que en la memoria traducen builtin como "incorporado/a", pero no estoy seguro en este caso, ya que en varios lugares del archivo aparece utilizado como sustantivo. #: ../Doc/reference/executionmodel.rst:120 msgid "" "If the :keyword:`global` statement occurs within a block, all uses of the " "name specified in the statement refer to the binding of that name 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 name is not " "found there, the builtins namespace is searched. The :keyword:`!global` " "statement must precede all uses of the name." 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." # Tengo dudas con la palabra enclosing en este contexto. Aparece también en otras partes del archivo. #: ../Doc/reference/executionmodel.rst:129 #, fuzzy 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." # Otra vez enclosing. #: ../Doc/reference/executionmodel.rst:135 #, fuzzy 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:142 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:145 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:163 #, fuzzy msgid "Builtins and restricted execution" msgstr "Módulos incorporados (*builtins*) y ejecución restringida" #: ../Doc/reference/executionmodel.rst:169 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:174 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:186 msgid "Interaction with dynamic features" msgstr "Interacción con funcionalidades dinámicas" #: ../Doc/reference/executionmodel.rst:188 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:199 #, fuzzy 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 el espacio " "de nombres local y global del código que invoque. Las variables libres no se " "resuelven en el espacio de nombres de cierre más cercano, sino en el espacio " "de nombres global. [#]_ Las funciones :func:`exec` y :func:`eval` tienen " "argumentos opcionales para sobreescribir el espacio de nombres local y " "global. Si se especifica un solo espacio de nombres, éste se usa para ambas " "cosas." #: ../Doc/reference/executionmodel.rst:210 msgid "Exceptions" msgstr "Excepciones" #: ../Doc/reference/executionmodel.rst:221 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:227 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:237 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:244 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:248 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:255 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:259 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:264 msgid "Footnotes" msgstr "Notas al pie" #: ../Doc/reference/executionmodel.rst:265 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."