# SOME DESCRIPTIVE TITLE. # Copyright (C) 2001-2025, Python Software Foundation # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # # Translators: # python-doc bot, 2025 # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.13\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-15 15:19+0000\n" "PO-Revision-Date: 2025-09-15 01:05+0000\n" "Last-Translator: python-doc bot, 2025\n" "Language-Team: Portuguese (Brazil) (https://app.transifex.com/python-doc/" "teams/5390/pt_BR/)\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % " "1000000 == 0 ? 1 : 2;\n" #: ../../reference/executionmodel.rst:6 msgid "Execution model" msgstr "Modelo de execução" #: ../../reference/executionmodel.rst:15 msgid "Structure of a program" msgstr "Estrutura de um programa" #: ../../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 "" "Um programa Python é construído a partir de blocos de código. Um :dfn:" "`bloco` é um pedaço do texto do programa Python que é executado como uma " "unidade. A seguir estão os blocos: um módulo, um corpo de função e uma " "definição de classe. Cada comando digitado interativamente é um bloco. Um " "arquivo de script (um arquivo fornecido como entrada padrão para o " "interpretador ou especificado como argumento de linha de comando para o " "interpretador) é um bloco de código. Um comando de script (um comando " "especificado na linha de comando do interpretador com a opção :option:`-c`) " "é um bloco de código. Um módulo executado sobre um script de nível superior " "(como o módulo ``__main__``) a partir da linha de comando usando um " "argumento :option:`-m` também é um bloco de código. O argumento da string " "passado para as funções embutidas :func:`eval` e :func:`exec` é um bloco de " "código." #: ../../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 "" "Um bloco de código é executado em um :dfn:`quadro de execução`. Um quadro " "contém algumas informações administrativas (usadas para depuração) e " "determina onde e como a execução continua após a conclusão do bloco de " "código." #: ../../reference/executionmodel.rst:40 msgid "Naming and binding" msgstr "Nomeação e ligação" #: ../../reference/executionmodel.rst:49 msgid "Binding of names" msgstr "Ligação de nomes" #: ../../reference/executionmodel.rst:55 msgid "" ":dfn:`Names` refer to objects. Names are introduced by name binding " "operations." msgstr "" ":dfn:`Nomes` referem-se a objetos. Os nomes são introduzidos por operações " "de ligação de nomes." #: ../../reference/executionmodel.rst:59 msgid "The following constructs bind names:" msgstr "As seguintes construções ligam nomes:" #: ../../reference/executionmodel.rst:61 msgid "formal parameters to functions," msgstr "parâmetros formais para funções," #: ../../reference/executionmodel.rst:62 msgid "class definitions," msgstr "definições de classe," #: ../../reference/executionmodel.rst:63 msgid "function definitions," msgstr "definições de função," #: ../../reference/executionmodel.rst:64 msgid "assignment expressions," msgstr "expressões de atribuição," #: ../../reference/executionmodel.rst:65 msgid "" ":ref:`targets ` that are identifiers if occurring in an " "assignment:" msgstr "" ":ref:`alvos ` que são identificadores se ocorrerem em uma " "atribuição:" #: ../../reference/executionmodel.rst:68 msgid ":keyword:`for` loop header," msgstr "cabeçalho de laço :keyword:`for`," #: ../../reference/executionmodel.rst:69 msgid "" "after :keyword:`!as` in a :keyword:`with` statement, :keyword:`except` " "clause, :keyword:`except* ` clause, or in the as-pattern in " "structural pattern matching," msgstr "" "depois de :keyword:`!as` em uma instrução :keyword:`with`, cláusula :keyword:" "`except`, cláusula :keyword:`except* ` ou no padrão as na " "correspondência de padrões estruturais," #: ../../reference/executionmodel.rst:71 msgid "in a capture pattern in structural pattern matching" msgstr "em um padrão de captura na correspondência de padrões estruturais" #: ../../reference/executionmodel.rst:73 msgid ":keyword:`import` statements." msgstr "instruções :keyword:`import`." #: ../../reference/executionmodel.rst:74 msgid ":keyword:`type` statements." msgstr "instruções :keyword:`type`." #: ../../reference/executionmodel.rst:75 msgid ":ref:`type parameter lists `." msgstr ":ref:`listas de parâmetros de tipo `." #: ../../reference/executionmodel.rst:77 msgid "" "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 "" "A instrução :keyword:`!import` no formato ``from ... import *`` liga todos " "os nomes definidos no módulo importado, exceto aqueles que começam com um " "sublinhado. Este formulário só pode ser usado no nível do módulo." #: ../../reference/executionmodel.rst:81 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 "" "Um alvo ocorrendo em uma instrução :keyword:`del` também é considerado " "ligado a esse propósito (embora a semântica real seja para desligar do nome)." #: ../../reference/executionmodel.rst:84 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 atribuição ou instrução de importação ocorre dentro de um bloco " "definido por uma definição de classe ou função ou no nível do módulo (o " "bloco de código de nível superior)." #: ../../reference/executionmodel.rst:89 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 :term:`free variable`." msgstr "" "Se um nome está ligado a um bloco, é uma variável local desse bloco, a menos " "que declarado como :keyword:`nonlocal` ou :keyword:`global`. Se um nome está " "ligado a nível do módulo, é uma variável global. (As variáveis do bloco de " "código do módulo são locais e globais.) Se uma variável for usada em um " "bloco de código, mas não definida lá, é uma :term:`variável livre`." #: ../../reference/executionmodel.rst:95 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 ocorrência de um nome no texto do programa se refere à :dfn:`ligação` " "daquele nome estabelecido pelas seguintes regras de resolução de nome." #: ../../reference/executionmodel.rst:101 msgid "Resolution of names" msgstr "Resolução de nomes" #: ../../reference/executionmodel.rst:105 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 "" "O :dfn:`escopo` define a visibilidade de um nome dentro de um bloco. Se uma " "variável local é definida em um bloco, seu escopo inclui esse bloco. Se a " "definição ocorrer em um bloco de função, o escopo se estende a quaisquer " "blocos contidos no bloco de definição, a menos que um bloco contido " "introduza uma ligação diferente para o nome." #: ../../reference/executionmodel.rst:113 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 "" "Quando um nome é usado em um bloco de código, ele é resolvido usando o " "escopo envolvente mais próximo. O conjunto de todos esses escopos visíveis a " "um bloco de código é chamado de :dfn:`ambiente` do bloco." #: ../../reference/executionmodel.rst:121 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 "" "Quando um nome não é encontrado, uma exceção :exc:`NameError` é levantada. " "Se o escopo atual for um escopo de função e o nome se referir a uma variável " "local que ainda não foi associada a um valor no ponto onde o nome é usado, " "uma exceção :exc:`UnboundLocalError` é levantada. :exc:`UnboundLocalError` é " "uma subclasse de :exc:`NameError`." #: ../../reference/executionmodel.rst:127 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. See :ref:`the FAQ entry on " "UnboundLocalError ` for examples." msgstr "" "Se a operação de ligação de nomes ocorre dentro de um bloco de código, todos " "os usos do nome dentro do bloco são tratadas como referências para o bloco " "atual. Isso pode. Isso pode levar a erros quando um nome é usado em um bloco " "antes de ser vinculado. Esta regra é sutil. Python carece de declarações e " "permite que as operações de ligação de nomes ocorram em qualquer lugar " "dentro de um bloco de código. As variáveis locais de um bloco de código " "podem ser determinadas pela varredura de todo o texto do bloco para " "operações de ligação de nome. Veja :ref:`o FAQ sobre UnboundLocalError ` para exemplos." #: ../../reference/executionmodel.rst:136 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 next. If the names are also " "not found in the builtins namespace, new variables are created in the global " "namespace. The global statement must precede all uses of the listed names." msgstr "" "Se a instrução :keyword:`global` ocorrer dentro de um bloco, todos os usos " "dos nomes especificados na instrução referem-se às ligações desses nomes no " "espaço de nomes de nível superior. Os nomes são resolvidos no espaço de " "nomes de nível superior pesquisando o espaço de nomes global, ou seja, o " "espaço de nomes do módulo que contém o bloco de código, e o espaço de nomes " "embutido, o espaço de nomes do módulo :mod:`builtins`. O espaço de nomes " "global é pesquisado primeiro. Se os nomes não forem encontrados lá, o espaço " "de nomes embutidos será pesquisado em seguida. Se os nomes também não forem " "encontrados no espaço de nomes embutido, novas variáveis são criadas no " "espaço de nomes global. A instrução global deve preceder todos os usos dos " "nomes listados." #: ../../reference/executionmodel.rst:146 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 "" "A instrução :keyword:`global` tem o mesmo escopo que uma operação de ligação " "de nome no mesmo bloco. Se o escopo mais próximo de uma variável livre " "contiver uma instrução global, a variável livre será tratada como global." #: ../../reference/executionmodel.rst:152 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. :ref:`Type parameters ` cannot be " "rebound with the :keyword:`!nonlocal` statement." msgstr "" "A instrução :keyword:`nonlocal` faz com que os nomes correspondentes se " "refiram a variáveis previamente vinculadas no escopo da função delimitadora " "mais próxima. A exceção :exc:`SyntaxError` é levantada em tempo de " "compilação se o nome fornecido não existir em nenhum escopo de função " "delimitador. :ref:`Parâmetros de tipo ` não podem ser " "vinculadas novamente com a instrução :keyword:`!nonlocal`." #: ../../reference/executionmodel.rst:160 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 "" "O espaço de nomes de um módulo é criado automaticamente na primeira vez que " "um módulo é importado. O módulo principal de um script é sempre chamado de :" "mod:`__main__`." #: ../../reference/executionmodel.rst:163 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, but it does not include :ref:`annotation scopes `, which have access to their enclosing class scopes. This means that " "the following will fail::" msgstr "" "Blocos de definição de classe e argumentos para :func:`exec` e :func:`eval` " "são especiais no contexto de resolução de nome. Uma definição de classe é " "uma instrução executável que pode usar e definir nomes. Essas referências " "seguem as regras normais para resolução de nome, com exceção de que " "variáveis locais não vinculadas são pesquisadas no espaço de nomes global " "global. O espaço de nomes global da definição de classe se torna o " "dicionário de atributos da classe. O escopo dos nomes definidos em um bloco " "de classe é limitado ao bloco de classe; ele não se estende aos blocos de " "código de métodos. Isso inclui compreensões e expressões geradoras, mas não " "inclui :ref:`escopos de anotação `, que têm acesso a seus " "escopos de classe delimitadores. Isso significa que o seguinte falhará::" #: ../../reference/executionmodel.rst:176 msgid "" "class A:\n" " a = 42\n" " b = list(a + i for i in range(10))" msgstr "" "class A:\n" " a = 42\n" " b = list(a + i for i in range(10))" #: ../../reference/executionmodel.rst:180 msgid "However, the following will succeed::" msgstr "Porém, o seguinte vai funcionar::" #: ../../reference/executionmodel.rst:182 msgid "" "class A:\n" " type Alias = Nested\n" " class Nested: pass\n" "\n" "print(A.Alias.__value__) # " msgstr "" "class A:\n" " type Alias = Nested\n" " class Nested: pass\n" "\n" "print(A.Alias.__value__) # " #: ../../reference/executionmodel.rst:191 msgid "Annotation scopes" msgstr "Escopos de anotação" #: ../../reference/executionmodel.rst:193 msgid "" ":ref:`Type parameter lists ` and :keyword:`type` statements " "introduce *annotation scopes*, which behave mostly like function scopes, but " "with some exceptions discussed below. :term:`Annotations ` " "currently do not use annotation scopes, but they are expected to use " "annotation scopes in Python 3.13 when :pep:`649` is implemented." msgstr "" "As instruções :keyword:`type` e :ref:`listas de parâmetros de tipo ` introduzem *escopos de anotação*, que se comportam principalmente " "como escopos de função, mas com algumas exceções discutidas abaixo. :term:" "`Anotações ` atualmente não usam escopos de anotação, mas espera-" "se que elas usem escopos de anotação no Python 3.13 quando :pep:`649` for " "implementada." #: ../../reference/executionmodel.rst:199 msgid "Annotation scopes are used in the following contexts:" msgstr "Os escopos de anotação são usados nos seguintes contextos:" #: ../../reference/executionmodel.rst:201 msgid "" "Type parameter lists for :ref:`generic type aliases `." msgstr "" "Listas de parâmetros de tipo para :ref:`apelidos de tipo genérico `." #: ../../reference/executionmodel.rst:202 msgid "" "Type parameter lists for :ref:`generic functions `. A " "generic function's annotations are executed within the annotation scope, but " "its defaults and decorators are not." msgstr "" "Listas de parâmetros de tipo para :ref:`funções genéricas `. As anotações de uma função genérica são executadas dentro do " "escopo de anotação, mas seus padrões e decoradores não." #: ../../reference/executionmodel.rst:205 msgid "" "Type parameter lists for :ref:`generic classes `. A generic " "class's base classes and keyword arguments are executed within the " "annotation scope, but its decorators are not." msgstr "" "Listas de parâmetros de tipo para :ref:`classes genéricas `. As classes base e argumentos nomeados de uma classe genérica " "são executadas dentro do escopo de anotação, mas seus decoradores não." #: ../../reference/executionmodel.rst:208 msgid "" "The bounds, constraints, and default values for type parameters (:ref:" "`lazily evaluated `)." msgstr "" "Os limites, restrições e valores padrão para parâmetros de tipo (:ref:" "`avaliados preguiçosamente `)." #: ../../reference/executionmodel.rst:210 msgid "The value of type aliases (:ref:`lazily evaluated `)." msgstr "" "O valor dos apelidos de tipo (:ref:`avaliado preguiçosamente `)." #: ../../reference/executionmodel.rst:212 msgid "Annotation scopes differ from function scopes in the following ways:" msgstr "" "Escopos de anotação diferenciam-se de escopos de função nas seguintes formas:" #: ../../reference/executionmodel.rst:214 msgid "" "Annotation scopes have access to their enclosing class namespace. If an " "annotation scope is immediately within a class scope, or within another " "annotation scope that is immediately within a class scope, the code in the " "annotation scope can use names defined in the class scope as if it were " "executed directly within the class body. This contrasts with regular " "functions defined within classes, which cannot access names defined in the " "class scope." msgstr "" "Os escopos de anotação têm acesso ao espaço de nomes da classe delimitadora. " "Se um escopo de anotação estiver imediatamente dentro de um escopo de classe " "ou dentro de outro escopo de anotação que esteja imediatamente dentro de um " "escopo de classe, o código no escopo de anotação poderá usar nomes definidos " "no escopo de classe como se fosse executado diretamente no corpo da classe. " "Isto contrasta com funções regulares definidas dentro de classes, que não " "podem acessar nomes definidos no escopo da classe." #: ../../reference/executionmodel.rst:220 msgid "" "Expressions in annotation scopes cannot contain :keyword:`yield`, ``yield " "from``, :keyword:`await`, or :token:`:= ` expressions. (These expressions are allowed in other " "scopes contained within the annotation scope.)" msgstr "" "Expressões em escopos de anotação não podem conter expressões :keyword:" "`yield`, ``yield from``, :keyword:`await` ou :token:`:= 1`. (Essas " "expressões são permitidas em outros escopos contidos no escopo de anotação.)" #: ../../reference/executionmodel.rst:224 msgid "" "Names defined in annotation scopes cannot be rebound with :keyword:" "`nonlocal` statements in inner scopes. This includes only type parameters, " "as no other syntactic elements that can appear within annotation scopes can " "introduce new names." msgstr "" "Nomes definidos em escopos de anotação não podem ser vinculados novamente " "com instruções :keyword:`nonlocal` em escopos internos. Isso inclui apenas " "parâmetros de tipo, pois nenhum outro elemento sintático que pode aparecer " "nos escopos de anotação pode introduzir novos nomes." #: ../../reference/executionmodel.rst:227 msgid "" "While annotation scopes have an internal name, that name is not reflected in " "the :term:`qualified name` of objects defined within the scope. Instead, " "the :attr:`~definition.__qualname__` of such objects is as if the object " "were defined in the enclosing scope." msgstr "" "Embora os escopos de anotação tenham um nome interno, esse nome não é " "refletido no :term:`nome qualificado` dos objetos definidos dentro do " "escopo. Em vez disso, o :attr:`~definition.__qualname__` de tais objetos é " "como se o objeto fosse definido no escopo delimitador." #: ../../reference/executionmodel.rst:232 msgid "Annotation scopes were introduced in Python 3.12 as part of :pep:`695`." msgstr "" "Escopos de anotação foram introduzidos no Python 3.12 como parte da :pep:" "`695`." #: ../../reference/executionmodel.rst:235 msgid "" "Annotation scopes are also used for type parameter defaults, as introduced " "by :pep:`696`." msgstr "" "Os escopos de anotação também são usados para padrões de parâmetros de tipo, " "conforme introduzido pela :pep:`696`." #: ../../reference/executionmodel.rst:242 msgid "Lazy evaluation" msgstr "Avaliação preguiçosa" #: ../../reference/executionmodel.rst:244 msgid "" "The values of type aliases created through the :keyword:`type` statement are " "*lazily evaluated*. The same applies to the bounds, constraints, and default " "values of type variables created through the :ref:`type parameter syntax " "`. This means that they are not evaluated when the type alias " "or type variable is created. Instead, they are only evaluated when doing so " "is necessary to resolve an attribute access." msgstr "" "Os valores dos apelidos de tipo criados através da instrução :keyword:`type` " "são *avaliados preguiçosamente*. O mesmo se aplica aos limites, restrições e " "valores padrão de variáveis de tipo criadas através da :ref:`sintaxe do " "parâmetro de tipo `. Isso significa que eles não são avaliados " "quando o apelido de tipo ou a variável de tipo é criado. Em vez disso, eles " "são avaliados apenas quando isso é necessário para resolver um acesso de " "atributo." #: ../../reference/executionmodel.rst:251 msgid "Example:" msgstr "Exemplo:" #: ../../reference/executionmodel.rst:253 msgid "" ">>> type Alias = 1/0\n" ">>> Alias.__value__\n" "Traceback (most recent call last):\n" " ...\n" "ZeroDivisionError: division by zero\n" ">>> def func[T: 1/0](): pass\n" ">>> T = func.__type_params__[0]\n" ">>> T.__bound__\n" "Traceback (most recent call last):\n" " ...\n" "ZeroDivisionError: division by zero" msgstr "" ">>> type Alias = 1/0\n" ">>> Alias.__value__\n" "Traceback (most recent call last):\n" " ...\n" "ZeroDivisionError: division by zero\n" ">>> def func[T: 1/0](): pass\n" ">>> T = func.__type_params__[0]\n" ">>> T.__bound__\n" "Traceback (most recent call last):\n" " ...\n" "ZeroDivisionError: division by zero" #: ../../reference/executionmodel.rst:267 msgid "" "Here the exception is raised only when the ``__value__`` attribute of the " "type alias or the ``__bound__`` attribute of the type variable is accessed." msgstr "" "Aqui a exceção é levantada apenas quando o atributo ``__value__`` do apelido " "de tipo ou o atributo ``__bound__`` da variável de tipo é acessado." #: ../../reference/executionmodel.rst:271 msgid "" "This behavior is primarily useful for references to types that have not yet " "been defined when the type alias or type variable is created. For example, " "lazy evaluation enables creation of mutually recursive type aliases::" msgstr "" "Esse comportamento é útil principalmente para referências a tipos que ainda " "não foram definidos quando o alias de tipo ou variável de tipo é criado. Por " "exemplo, a avaliação preguiçosa permite a criação de apelidos de tipo " "mutuamente recursivos::" #: ../../reference/executionmodel.rst:275 msgid "" "from typing import Literal\n" "\n" "type SimpleExpr = int | Parenthesized\n" "type Parenthesized = tuple[Literal[\"(\"], Expr, Literal[\")\"]]\n" "type Expr = SimpleExpr | tuple[SimpleExpr, Literal[\"+\", \"-\"], Expr]" msgstr "" "from typing import Literal\n" "\n" "type SimpleExpr = int | Parenthesized\n" "type Parenthesized = tuple[Literal[\"(\"], Expr, Literal[\")\"]]\n" "type Expr = SimpleExpr | tuple[SimpleExpr, Literal[\"+\", \"-\"], Expr]" #: ../../reference/executionmodel.rst:281 msgid "" "Lazily evaluated values are evaluated in :ref:`annotation scope `, which means that names that appear inside the lazily evaluated " "value are looked up as if they were used in the immediately enclosing scope." msgstr "" "Valores avaliados preguiçosamente são avaliados em :ref:`escopo de anotação " "`, o que significa que os nomes que aparecem dentro do " "valor avaliado preguiçosamente são pesquisados como se fossem usados no " "escopo imediatamente envolvente." #: ../../reference/executionmodel.rst:290 msgid "Builtins and restricted execution" msgstr "Builtins e execução restrita" #: ../../reference/executionmodel.rst:296 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 "" "Os usuários não devem tocar em ``__builtins__``; é estritamente um detalhe " "de implementação. Usuários que desejam substituir valores no espaço de nomes " "interno devem :keyword:`import` o módulo :mod:`builtins` e modificar seus " "atributos apropriadamente." #: ../../reference/executionmodel.rst:301 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 "" "O espaço de nomes builtins associado com a execução de um bloco de código é " "encontrado procurando o nome ``__builtins__`` em seu espaço de nomes global; " "este deve ser um dicionário ou um módulo (no último caso, o dicionário do " "módulo é usado). Por padrão, quando no módulo :mod:`__main__`, " "``__builtins__`` é o módulo embutido :mod:`builtins`; quando em qualquer " "outro módulo, ``__builtins__`` é um apelido para o dicionário do próprio " "módulo :mod:`builtins`." #: ../../reference/executionmodel.rst:313 msgid "Interaction with dynamic features" msgstr "Interação com recursos dinâmicos" #: ../../reference/executionmodel.rst:315 msgid "" "Name resolution of free variables occurs at runtime, not at compile time. " "This means that the following code will print 42::" msgstr "" "A resolução de nome de variáveis livres ocorre em tempo de execução, não em " "tempo de compilação. Isso significa que o código a seguir imprimirá 42::" #: ../../reference/executionmodel.rst:318 msgid "" "i = 10\n" "def f():\n" " print(i)\n" "i = 42\n" "f()" msgstr "" "i = 10\n" "def f():\n" " print(i)\n" "i = 42\n" "f()" #: ../../reference/executionmodel.rst:326 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 "" "As funções :func:`eval` e :func:`exec` não têm acesso ao ambiente completo " "para resolução de nome. Os nomes podem ser resolvidos nos espaços de nomes " "locais e globais do chamador. Variáveis livres não são resolvidas no espaço " "de nomes mais próximo, mas no espaço de nomes global. [#]_ As funções :func:" "`exec` e :func:`eval` possuem argumentos opcionais para substituir o espaço " "de nomes global e local. Se apenas um espaço de nomes for especificado, ele " "será usado para ambos." #: ../../reference/executionmodel.rst:340 msgid "Exceptions" msgstr "Exceções" #: ../../reference/executionmodel.rst:351 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 "" "As exceções são um meio de romper o fluxo normal de controle de um bloco de " "código para tratar erros ou outras condições excepcionais. Uma exceção é " "*levantada* no ponto em que o erro é detectado; ele pode ser *tratado* pelo " "bloco de código circundante ou por qualquer bloco de código que invocou " "direta ou indiretamente o bloco de código onde ocorreu o erro." #: ../../reference/executionmodel.rst:357 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 "" "O interpretador Python levanta uma exceção quando detecta um erro em tempo " "de execução (como divisão por zero). Um programa Python também pode levantar " "explicitamente uma exceção com a instrução :keyword:`raise`. Os tratadores " "de exceção são especificados com a instrução :keyword:`try` ... :keyword:" "`except`. A cláusula :keyword:`finally` de tal declaração pode ser usada " "para especificar o código de limpeza que não trata a exceção, mas é " "executado se uma exceção ocorreu ou não no código anterior." #: ../../reference/executionmodel.rst:367 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 o modelo de \"terminação\" da manipulação de erros: um " "manipulador de exceção pode descobrir o que aconteceu e continuar a execução " "em um nível externo, mas não pode reparar a causa do erro e tentar novamente " "a operação com falha (exceto reinserindo a parte incorreta de código de " "cima)." #: ../../reference/executionmodel.rst:374 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 "" "Quando uma exceção não é manipulada, o interpretador encerra a execução do " "programa ou retorna ao seu laço principal interativo. Em ambos os casos, ele " "exeibe um traceback (situação da pilha de execução), exceto quando a exceção " "é :exc:`SystemExit`." #: ../../reference/executionmodel.rst:378 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 :term:`non-virtual base class ` thereof. The instance can be received by the handler and can carry " "additional information about the exceptional condition." msgstr "" "As exceções são identificadas por instâncias de classe. A cláusula :keyword:" "`except` é selecionada dependendo da classe da instância: ela deve " "referenciar a classe da instância ou uma :term:`classe base não-virtual " "` dela. A instância pode ser recebida pelo manipulador " "e pode conter informações adicionais sobre a condição excepcional." #: ../../reference/executionmodel.rst:386 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 "" "As mensagens de exceção não fazem parte da API do Python. Seu conteúdo pode " "mudar de uma versão do Python para outra sem aviso e não deve ser invocado " "pelo código que será executado em várias versões do interpretador." #: ../../reference/executionmodel.rst:390 msgid "" "See also the description of the :keyword:`try` statement in section :ref:" "`try` and :keyword:`raise` statement in section :ref:`raise`." msgstr "" "Veja também a descrição da declaração :keyword:`try` na seção :ref:`try` e a " "instrução :keyword:`raise` na seção :ref:`raise`." #: ../../reference/executionmodel.rst:395 msgid "Footnotes" msgstr "Notas de rodapé" #: ../../reference/executionmodel.rst:396 msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." msgstr "" "Essa limitação ocorre porque o código executado por essas operações não está " "disponível no momento em que o módulo é compilado." #: ../../reference/executionmodel.rst:8 msgid "execution model" msgstr "execução, modelo" #: ../../reference/executionmodel.rst:8 msgid "code" msgstr "código" #: ../../reference/executionmodel.rst:8 ../../reference/executionmodel.rst:17 msgid "block" msgstr "bloco" #: ../../reference/executionmodel.rst:31 ../../reference/executionmodel.rst:292 msgid "execution" msgstr "execução" #: ../../reference/executionmodel.rst:31 msgid "frame" msgstr "quadro" #: ../../reference/executionmodel.rst:42 msgid "namespace" msgstr "espaço de nomes" #: ../../reference/executionmodel.rst:42 ../../reference/executionmodel.rst:103 msgid "scope" msgstr "escopo" #: ../../reference/executionmodel.rst:51 msgid "name" msgstr "nome" #: ../../reference/executionmodel.rst:51 msgid "binding" msgstr "vinculação; ligação" #: ../../reference/executionmodel.rst:57 msgid "from" msgstr "from" #: ../../reference/executionmodel.rst:57 msgid "import statement" msgstr "instrução import" #: ../../reference/executionmodel.rst:87 msgid "free" msgstr "livre" #: ../../reference/executionmodel.rst:87 msgid "variable" msgstr "variável" #: ../../reference/executionmodel.rst:111 msgid "environment" msgstr "ambiente" #: ../../reference/executionmodel.rst:117 msgid "NameError (built-in exception)" msgstr "NameError (exceção embutida)" #: ../../reference/executionmodel.rst:117 msgid "UnboundLocalError" msgstr "UnboundLocalError" #: ../../reference/executionmodel.rst:158 msgid "module" msgstr "módulo" #: ../../reference/executionmodel.rst:158 msgid "__main__" msgstr "__main__" #: ../../reference/executionmodel.rst:292 msgid "restricted" msgstr "restrita" #: ../../reference/executionmodel.rst:342 msgid "exception" msgstr "exceção" #: ../../reference/executionmodel.rst:344 msgid "raise an exception" msgstr "levantar uma exceção" #: ../../reference/executionmodel.rst:344 msgid "handle an exception" msgstr "manipular uma exceção" #: ../../reference/executionmodel.rst:344 msgid "exception handler" msgstr "tratador de exceção" #: ../../reference/executionmodel.rst:344 msgid "errors" msgstr "erros" #: ../../reference/executionmodel.rst:344 msgid "error handling" msgstr "tratamento de erros" #: ../../reference/executionmodel.rst:365 msgid "termination model" msgstr "modelo de terminação" #: ../../reference/executionmodel.rst:372 msgid "SystemExit (built-in exception)" msgstr "SystemExit (exceção embutida)"