# 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.9\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-09-22 21:56+0000\n" "PO-Revision-Date: 2025-09-22 17:56+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: 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 "" #: ../../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 "" "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: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 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: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 "" "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 :dfn:`variável livre`." #: ../../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 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:89 msgid "Resolution of names" msgstr "Resolução de nomes" #: ../../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 "" "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: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 "" "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: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 "" "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: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 "" #: ../../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 "" "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 " "interno, 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 interno será pesquisado. A instrução :keyword:`!global` deve " "preceder todos os usos dos nomes listados." #: ../../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 "" "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: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 "" #: ../../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 "" "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: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 "" #: ../../reference/executionmodel.rst:165 msgid "Builtins and restricted execution" msgstr "Builtins e execução restrita" #: ../../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 "" "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: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 "" "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:188 msgid "Interaction with dynamic features" msgstr "Interação com recursos dinâmicos" #: ../../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 "" "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: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 "" "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:212 msgid "Exceptions" msgstr "Exceções" #: ../../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 "" "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: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 "" "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: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 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: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 "" "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: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 :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:258 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:262 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:267 msgid "Footnotes" msgstr "Notas de rodapé" #: ../../reference/executionmodel.rst:268 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."