Glossário¶
>>>
O prompt padrão do shell interativo do Python. Normalmente visto em exemplos de código que podem ser executados interativamente no interpretador.
...
O prompt padrão do shell interativo do Python ao inserir o código para um bloco de código recuado, quando dentro de um par de delimitadores correspondentes esquerdo e direito (parênteses, colchetes, chaves ou aspas triplas) ou após especificar um decorador.
- 2to3
Uma ferramenta que tenta converter código Python 2.x em código Python 3.x tratando a maioria das incompatibilidades que podem se detectadas com análise do código-fonte e navegação na árvore sintática.
O 2to3 está disponível na biblioteca padrão como
lib2to3
; um ponto de entrada é disponibilizado comoTools/scripts/2to3
. Veja 2to3 - Tradução Automatizada de Código Python 2 para 3.- classe base abstrata
Classes básicas abstratas complementam tipagem pato, fornecendo uma maneira de definir interfaces quando outras técnicas, como
hasattr()
, seriam desajeitadas ou sutilmente erradas (por exemplo, com métodos mágicos). ABCs introduzem subclasses virtuais, que são classes que não herdam de uma classe mas ainda são reconhecidas porisinstance()
eissubclass()
; veja a documentação do móduloabc
. O Python vem com muitas ABCs internas para estruturas de dados (no módulocollections.abc
), números (no módulonumbers
), fluxos (no móduloio
) , localizadores e carregadores de importação (no móduloimportlib.abc
). Você pode criar suas próprias ABCs com o módulo: mod:abc.- Anotação
Um rótulo associado a uma variável, um atributo de classe ou um parâmetro de função ou valor de retorno, usado por convenção como: term: type hint.
Anotações de variáveis locais não podem ser acessadas em tempo de execução, mas anotações de variáveis globais, atributos de classe e funções são armazenadas no atributo especial: attr: __annotations__ de módulos, classes e funções, respectivamente.
Ver variable annotation, function annotation, PEP 484 e PEP 526, que descrevem esta funcionalidade
- argumento
Um valor passado para um function (ou method`) ao chamar a função. Existem dois tipos de argumento:
argumento nomeado: um argumento precedido por um identificador (por exemplo,
nome=
) na chamada de uma função ou passada como um valor em um dicionário precedido por**
. Por exemplo,3
e5
são ambos argumentos nomeados na chamada da funçãocomplex()
a seguir:complex(real=3, imag=5) complex(**{'real': 3, 'imag': 5})
argumento posicional: um argumento que não é um argumento nomeado. Argumentos posicionais podem aparecer no início da lista de argumentos e/ou podem ser passados com elementos de um iterável precedido por
*
. Por exemplo,3
e5
são ambos argumentos posicionais nas chamadas a seguir:complex(3, 5) complex(*(3, 5))
Argumentos são atribuídos às variáveis locais nomeadas no corpo da função. Veja a seção Chamadas para as regras de atribuição. Sintaticamente, qualquer expressão pode ser usada para representar um argumento; avaliada a expressão, o valor é atribuído à variável local.
Veja também o termo parâmetro no glossário, a pergunta the difference between arguments and parameters na FAQ, e PEP 362.
- gerenciador de contexto assíncrono
An object which controls the environment seen in an
async with
statement by defining__aenter__()
and__aexit__()
methods. Introduced by PEP 492.- gerador assíncrono
A function which returns an asynchronous generator iterator. It looks like a coroutine function defined with
async def
except that it containsyield
expressions for producing a series of values usable in anasync for
loop.Normalmente se refere a uma função geradora assíncrona, mas pode se referir a um iterador gerador assíncrono em alguns contextos. Em casos em que o significado não esteja claro, usar o termo completo evita a ambiguidade.
Uma função geradora assíncrona pode conter expressões
await
e tambémasync for
easync with
.- gerador iterador assíncrono
Um objeto criado por uma função asynchronous generator.
Este é um iterador assíncrono que, quando chamado usando o método
__anext__()
, retorna um objeto aguardável que executará o corpo da função de gerador assíncrono até a próxima expressãoyield
.Cada
yield
suspende temporariamente o processamento, lembrando o estado de execução do local (incluindo variáveis locais e instruções de tentativa pendentes). Quando o iterador do gerador assíncrono efetivamente é retomado com outro retorno esperado por__anext__()
, ele inicia de onde parou. Veja PEP 492 e PEP 525.- iterável assíncrono
Um objeto que pode ser usado em uma instrução
async for
. Deve retornar um iterador assíncrono do seu método__aiter__()
. Introduzido por PEP 492.- iterador assíncrono
Um objeto que implementa os métodos
__aiter__()
e__anext__()
.__anext__
deve retornar um objeto aguardável.async for
resolve os aguardáveis retornados por um método__anext__()
do iterador assíncrono até que ele levante uma exceçãoStopAsyncIteration
. Introduzido pela PEP 492.- atributo
Um valor associado a um objeto que é referenciado pelo nome separado por um ponto. Por exemplo, se um objeto o tem um atributo a esse seria referenciado como o.a.
- aguardável
Um objeto que pode ser usado em uma expressão
await
. Pode ser uma coroutine ou um objeto com um método__await__()
. Veja também a PEP 492.- BDFL
Abreviação da expressão da língua inglesa “Benevolent Dictator for Life” (em português, “Ditador Benevolente Vitalício”), referindo-se a Guido van Rossum, criador do Python.
- arquivo binário
Um objeto arquivo capaz de ler e gravar em objetos byte ou similar. Exemplos de arquivos binários são arquivos abertos no modo binário (
'rb'
,'wb'
ou'rb+'
),sys.stdin.buffer
,sys.stdout.buffer
e instâncias deio.BytesIO
egzip.GzipFile
.Veja também arquivo texto para um arquivo objeto capaz de ler e gravar em objetos
str
.- objeto byte ou similar
Um objeto que suporta o Protocolo de Buffer e pode exportar um buffer C contíguo. Isso inclui todos os objetos
bytes
,bytearray
earray.array
, além de muitos objetos comunsmemoryview
. Objetos byte ou similar podem ser usados para várias operações que funcionam com dados binários; isso inclui compactação, salvamento em um arquivo binário e envio por um soquete.Algumas operações precisam que os dados binários sejam mutáveis. A documentação geralmente se refere a eles como “objetos byte ou similiar para leitura-escrita”. Exemplos de objetos de buffer mutável incluem
bytearray
e ummemoryview
de umbytearray
. Outras operações exigem que os dados binários sejam armazenados em objetos imutáveis (“objetos byte ou similar para somente leitura”); exemplos disso incluembytes
e amemoryview
de um objetobytes
.- bytecode
Python source code is compiled into bytecode, the internal representation of a Python program in the CPython interpreter. The bytecode is also cached in
.pyc
files so that executing the same file is faster the second time (recompilation from source to bytecode can be avoided). This “intermediate language” is said to run on a virtual machine that executes the machine code corresponding to each bytecode. Do note that bytecodes are not expected to work between different Python virtual machines, nor to be stable between Python releases.A list of bytecode instructions can be found in the documentation for the dis module.
- Classe
A template for creating user-defined objects. Class definitions normally contain method definitions which operate on instances of the class.
- variável de classe
Uma variável definida em uma classe e destinada a ser modificada apenas no nível da classe (ou seja, não em uma instância da classe).
- Coerção
A conversão implícita de uma instância de um tipo para outro durante uma operação que envolve dois argumentos do mesmo tipo. Por exemplo,
int(3.15)
converte o número do ponto flutuante no número inteiro3
, mas em3+4.5
, cada argumento é de um tipo diferente (um int, um float), e ambos devem ser convertidos para o mesmo tipo antes de poderem ser adicionados ou isso levantará umTypeError
. Sem coerção, todos os argumentos de tipos compatíveis teriam que ser normalizados com o mesmo valor pelo programador, por exemplo,float(3)+4.5
em vez de apenas3+4.5
.- número complexo
An extension of the familiar real number system in which all numbers are expressed as a sum of a real part and an imaginary part. Imaginary numbers are real multiples of the imaginary unit (the square root of
-1
), often writteni
in mathematics orj
in engineering. Python has built-in support for complex numbers, which are written with this latter notation; the imaginary part is written with aj
suffix, e.g.,3+1j
. To get access to complex equivalents of themath
module, usecmath
. Use of complex numbers is a fairly advanced mathematical feature. If you’re not aware of a need for them, it’s almost certain you can safely ignore them.- gerenciador de contexto
An object which controls the environment seen in a
with
statement by defining__enter__()
and__exit__()
methods. See PEP 343.- variável de contexto
Uma variável que pode ter valores diferentes, dependendo do seu contexto. Isso é semelhante ao armazenamento local do encadeamento, no qual cada encadeamento de execução pode ter um valor diferente para uma variável. No entanto, com variáveis de contexto, pode haver vários contextos em um encadeamento de execução e o principal uso para variáveis de contexto é acompanhar as variáveis em tarefas assíncronas simultâneas. Veja
contextvars
.- contíguo
Um buffer é considerado contíguo exatamente se for *contíguo C * ou *contíguo Fortran *. Os buffers de dimensão zero são contíguos C e Fortran. Em matrizes unidimensionais, os itens devem ser dispostos na memória próximos um do outro, em ordem crescente de índices, começando do zero. Em matrizes multidimensionais contíguas C, o último índice varia mais rapidamente ao visitar itens em ordem de endereço de memória. No entanto, nas matrizes contíguas do Fortran, o primeiro índice varia mais rapidamente.
- co-rotina
Coroutines são uma forma mais generalizada de sub-rotinas. Sub-routinas tem a entrada iniciada em um ponto, e a saída em outro ponto. Coroutines podem entrar, sair, e continuar em muitos pontos diferentes. Elas podem ser implementadas com a instrução
async def
. Veja também PEP 492.- função de co-rotina
Uma função que retorna um objeto do tipo coroutine. Uma função coroutine pode ser definida com a instrução
async def
, e pode conter as palavras chavesawait
,async for
, easync with
. Isso foi introduzido pela PEP 492.- CPython
The canonical implementation of the Python programming language, as distributed on python.org. The term “CPython” is used when necessary to distinguish this implementation from others such as Jython or IronPython.
- decorador
Uma função que retorna outra função, geralmente aplicada como uma transformação de função usando a sintaxe
@wrapper
. Exemplos comuns para decoradores sãoclassmethod()
estaticmethod()
.A sintaxe do decorador é meramente um açúcar-sintático, as duas definições de funções a seguir são semanticamente equivalentes:
def f(...): ... f = staticmethod(f) @staticmethod def f(...): ...
O mesmo conceito existe para as classes, mas não é comumente utilizado. Veja a documentação de function definitions e class definitions para obter mais informações sobre decoradores.
- descritor
Any object which defines the methods
__get__()
,__set__()
, or__delete__()
. When a class attribute is a descriptor, its special binding behavior is triggered upon attribute lookup. Normally, using a.b to get, set or delete an attribute looks up the object named b in the class dictionary for a, but if b is a descriptor, the respective descriptor method gets called. Understanding descriptors is a key to a deep understanding of Python because they are the basis for many features including functions, methods, properties, class methods, static methods, and reference to super classes.Para obter mais informações sobre os métodos dos descritores, veja: Implementando descritores.
- dicionário
Um Array associativo em que chaves arbitrárias são mapeadas para valores. As chaves podem ser quaisquer objetos que possuam os métodos
__hash__()
e__eq__()
. Dicionários são estruturas chamadas de hash na linguagem Perl.- visualização de dicionário
Os objetos retornados por
dict.keys()
,dict.values()
edict.items()
são chamados de Views de Dicionário. Eles fornecem uma visualização dinâmica das entradas do dicionário, o que significa que quando o dicionário é alterado, a View reflete essas alterações. Para forçar a View do dicionário a se tornar uma lista completa uselist(dictview)
. Veja: ref:dict-views.- docstring
Uma string literal que aparece como primeira expressão numa classe, função ou módulo. Ainda que sejam ignoradas quando a suíte é executada, é reconhecida pelo compilador que a coloca no atributo
__doc__
da classe, função ou módulo que a encapsula. Como ficam disponíveis por meio de introspecção, docstrings são o lugar canônico para documentação do objeto.- duck-typing (tipagem pato)
A programming style which does not look at an object’s type to determine if it has the right interface; instead, the method or attribute is simply called or used (“If it looks like a duck and quacks like a duck, it must be a duck.”) By emphasizing interfaces rather than specific types, well-designed code improves its flexibility by allowing polymorphic substitution. Duck-typing avoids tests using
type()
orisinstance()
. (Note, however, that duck-typing can be complemented with abstract base classes.) Instead, it typically employshasattr()
tests or EAFP programming.- EAFP
Easier to ask for forgiveness than permission. This common Python coding style assumes the existence of valid keys or attributes and catches exceptions if the assumption proves false. This clean and fast style is characterized by the presence of many
try
andexcept
statements. The technique contrasts with the LBYL style common to many other languages such as C.- expressão
Uma parte da sintaxe que pode ser avaliada para algum valor. Em outras palavras, uma expressão é a acumulação de elementos de expressão como literais, nomes, atributos de acesso, operadores ou chamadas de funções, todos os quais retornam um valor. Em contraste com muitas outras linguagens, nem todas as contruções de linguagem são expressões. Também existem statement, os quais não podem ser usadas como expressões, como por exemplo
while
. Atribuições também são instruções, não expressões.- módulo de extensão
Um módulo escrito em C ou C++, usando a API C de Python para interagir tanto com código de usuário quanto do núcleo.
- f-string
Literais string prefixadas com
'f'
ou'F'
são conhecidas como “f-strings” que é uma abreviação de formatted string literals. Veja também PEP 498.- file object (arquivo objeto)
Um objeto que expõe uma API orientada a arquivos (com métodos tais como
read()
ouwrite()
) para um recurso subjacente. Dependendo da maneira como foi criado, um objeto arquivo pode mediar o acesso a um arquivo real no disco ou outro tipo de dispositivo de armazenamento ou de comunicação (por exemplo a entrada/saída padrão, buffers em memória, sockets, pipes, etc.). Objetos arquivo também são chamados de file-like objects ou streams.Atualmente há três categorias de objetos arquivo: arquivos binários raw, .. XXX: sugestões para “raw” e “bufferizados”? arquivos binários bufferizados e arquivos texto. Suas interfaces estão definidas no módulo
io
. A forma canônica de se criar um objeto arquivo é por meio da funçãoopen()
.- file-like object (objeto como a um arquivo)
Um sinônimo do termo file object.
- finder
An object that tries to find the loader for a module that is being imported.
Desde o Python 3.3, existem dois tipos de localizadores: meta path finders para uso com
sys.meta_path
, e path entry finders para uso comsys.path_hooks
.- divisão pelo piso
Mathematical division that rounds down to nearest integer. The floor division operator is
//
. For example, the expression11 // 4
evaluates to2
in contrast to the2.75
returned by float true division. Note that(-11) // 4
is-3
because that is-2.75
rounded downward. See PEP 238.- function (função)
A series of statements which returns some value to a caller. It can also be passed zero or more arguments which may be used in the execution of the body. See also parameter, method, and the Definições de função section.
- function annotation (anotação de função)
Uma annotation de um parâmetro ou retorno de uma função.
Anotações de função são comumente usados por type hints: por exemplo, essa função espera receber dois argumentos
int
e também é esperado que devolva um valorint
:def sum_two_numbers(a: int, b: int) -> int: return a + b
A sintaxe de anotação de uma função é explicada na seção Definições de função.
Veja variable annotation e PEP 484, que descrevem essa funcionalidade.
- __future__
A pseudo-module which programmers can use to enable new language features which are not compatible with the current interpreter.
Ao importar o módulo
__future__
e avaliar suas variáveis, você pode ver quando uma nova funcionalidade foi adicionada pela primeira vez à linguagem e quando ela se tornará padrão:>>> import __future__ >>> __future__.division _Feature((2, 2, 0, 'alpha', 2), (3, 0, 0, 'alpha', 0), 8192)
- garbage collection (coletor de lixo)
O processo de liberar a memória quando ela não é mais utilizada. Python executa a liberação da memória através da contagem de referências e um coletor de lixo cíclico que é capaz de detectar e interromper referências cíclicas. O coletor de lixo pode ser controlado usando o módulo
gc
.- gerador
A function which returns a generator iterator. It looks like a normal function except that it contains
yield
expressions for producing a series of values usable in a for-loop or that can be retrieved one at a time with thenext()
function.Normalmente refere-se a uma função geradora, mas pode referir-se a um iterador gerador em alguns contextos. Em alguns casos onde o significado desejado não está claro, usar o termo completo evita ambiguidade.
- iterador gerador
Um objeto criado por uma função gerador.
Cada
yield
suspende temporariamente o processamento, memorizando o estado da execução local (incluindo variáveis locais e instruções try pendentes). Quando o iterador gerador retorna, ele se recupera do último ponto onde estava (em contrapartida as funções que iniciam uma nova execução a cada vez que são invocadas).- generator expression
Uma expressão que retorna um iterador. Parece uma expressão normal, seguido de uma cláusula
for
definindo uma variável de loop, um range, e uma cláusulaif
opcional. A expressão combinada gera valores para uma função encapsuladora:>>> sum(i*i for i in range(10)) # sum of squares 0, 1, 4, ... 81 285
- generic function (função genérica)
Uma função composta por multiplas funções implementando a mesma operação para diferentes tipos. Qual implementação deverá ser usada durante a execução é determinada pelo algoritmo de despacho.
Veja também a entrada single dispatch no glossário, o decorador
functools.singledispatch()
, e a PEP 443.- GIL
Veja global interpreter lock.
- global interpreter lock (bloqueio global do intérprete)
The mechanism used by the CPython interpreter to assure that only one thread executes Python bytecode at a time. This simplifies the CPython implementation by making the object model (including critical built-in types such as
dict
) implicitly safe against concurrent access. Locking the entire interpreter makes it easier for the interpreter to be multi-threaded, at the expense of much of the parallelism afforded by multi-processor machines.However, some extension modules, either standard or third-party, are designed so as to release the GIL when doing computationally-intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O.
Past efforts to create a “free-threaded” interpreter (one which locks shared data at a much finer granularity) have not been successful because performance suffered in the common single-processor case. It is believed that overcoming this performance issue would make the implementation much more complicated and therefore costlier to maintain.
- pyc baseado em hash
Um arquivo de cache em bytecode que usa hash ao invés do tempo (no qual o arquivo de código-fonte foi modificado pela última vez) para determinar a sua validade. Veja Cached bytecode invalidation.
- hashable
An object is hashable if it has a hash value which never changes during its lifetime (it needs a
__hash__()
method), and can be compared to other objects (it needs an__eq__()
method). Hashable objects which compare equal must have the same hash value.Hashability makes an object usable as a dictionary key and a set member, because these data structures use the hash value internally.
A maioria dos objetos embutidos imutáveis do Python são hasheáveis; containers mutáveis (tais como listas ou dicionários) não são; containers imutáveis (tais como tuplas e frozensets) são hasheáveis apenas se os seus elementos são hasheáveis. Objetos que são instâncias de classes definidas pelo usuário são hasheáveis por padrão. Todos eles comparam de forma desigual (exceto entre si mesmos), e o seu valor hash é derivado a partir do seu
id()
.- IDLE
Um ambiente de desenvolvimento integrado para Python. IDLE é um editor básico e um ambiente interpretador que vem junto com a distribuição padrão do Python.
- imutável
Um objeto que possui um valor fixo. Objetos imutáveis incluem números, strings e tuplas. Estes objetos não podem ser alterados. Um novo objeto deve ser criado se um valor diferente tiver de ser armazenado. Objetos imutáveis têm um papel importante em lugares onde um valor constante de hash seja necessário, como por exemplo uma chave em um dicionário.
- import path
Uma lista de localizações (ou path entries) que são buscadas pelo path based finder por módulos para importar. Durante a importação, esta lista de localizações usualmente vem a partir de
sys.path
, mas para sub-pacotes ela também pode vir do atributo__path__
de pacotes-pai.- importando
O processo pelo qual o código Python em um módulo é disponibilizado para o código Python em outro módulo.
- importer
Um objeto que localiza e carrega um módulo; Tanto um finder e o objeto loader.
- interactive
Python has an interactive interpreter which means you can enter statements and expressions at the interpreter prompt, immediately execute them and see their results. Just launch
python
with no arguments (possibly by selecting it from your computer’s main menu). It is a very powerful way to test out new ideas or inspect modules and packages (rememberhelp(x)
).- interpretado
Python é uma linguagem interpretada, em oposição àquelas que são compiladas, embora esta distinção possa ser nebulosa devido à presença do compilador de bytecode. Isto significa que os arquivos-fontes podem ser executados diretamente sem necessidade explícita de se criar um arquivo executável. Linguagens interpretadas normalmente têm um ciclo de desenvolvimento/depuração mais curto que as linguagens compiladas, apesar de seus programas geralmente serem executados mais lentamente. Veja também interativo.
- interpreter shutdown
Quando solicitado para desligar, o interpretador Python entra em uma fase especial, onde ele gradualmente libera todos os recursos alocados, tais como módulos e várias estruturas internas críticas. Ele também faz diversas chamadas para o garbage collector. Isto pode disparar a execução de código em destrutores definidos pelo usuário ou callbacks de referência fraca. Código executado durante a fase de desligamento pode encontrar diversas exceções, pois os recursos que ele depende podem não funcionar mais (exemplos comuns são os módulos de bibliotecas, ou os mecanismos de avisos).
A principal razão para o interpretador desligar, é que o módulo
__main__
ou o script sendo executado terminou sua execução.- iterável
Um objeto capaz de retornar seus membros um de cada vez. Exemplos de iteráveis incluem todos os tipos de sequência (tais como
list
,str
etuple
) e alguns tipos de não-sequência, como odict
, file objects, além dos objetos de quaisquer classes que você definir com um método__iter__()
ou__getitem__()
que implementam a semântica de sequência .Iteráveis podem ser usados em um laço
for
e em vários outros lugares em que uma sequência é necessária (zip()
,map()
, …). Quando um objeto iterável é passado como argumento para a função nativaiter()
, ela retorna um iterador para o objeto. Este iterador é adequado para se varrer todo o conjunto de valores. Ao usar iteráveis, normalmente não é necessário chamariter()
ou lidar com os objetos iteradores em si. A instruçãofor
faz isso automaticamente para você, criando uma variável temporária para armazenar o iterador durante a execução do laço. Veja também iterador, sequência, e gerador.- iterador
Um objeto que representa um fluxo de dados. Repetidas chamadas ao método
__next__()
de um iterador (ou passando o objeto para a função nativanext()
) vão retornar itens sucessivos do fluxo. Quando não houver mais dados disponíveis uma exceçãoStopIteration
exception será levantada. Neste ponto, o objeto iterador se esgotou e quaisquer chamadas subsequentes a seu método__next__()
vão apenas levantar a exceçãoStopIteration
novamente. Iteradores precisam ter um método__iter__()
que retorne o objeto iterador em si, de forma que todo iterador também é iterável e pode ser usado na maioria dos lugares em que um iterável é requerido. Uma notável exceção é código que tenta realizar passagens em múltiplas iterações. Um objeto contêiner (como umalist
) produz um novo iterador a cada vez que você passá-lo para a funçãoiter()
ou utilizá-lo em um laçofor
. Tentar isso com o mesmo iterador apenas iria retornar o mesmo objeto iterador esgotado já utilizado na iteração anterior, como se fosse um contêiner vazio.Mais informações podem ser encontradas em Tipos de Iteradores.
- Função chave
A key function or collation function is a callable that returns a value used for sorting or ordering. For example,
locale.strxfrm()
is used to produce a sort key that is aware of locale specific sort conventions.A number of tools in Python accept key functions to control how elements are ordered or grouped. They include
min()
,max()
,sorted()
,list.sort()
,heapq.merge()
,heapq.nsmallest()
,heapq.nlargest()
, anditertools.groupby()
.There are several ways to create a key function. For example. the
str.lower()
method can serve as a key function for case insensitive sorts. Alternatively, a key function can be built from alambda
expression such aslambda r: (r[0], r[2])
. Also, theoperator
module provides three key function constructors:attrgetter()
,itemgetter()
, andmethodcaller()
. See the Sorting HOW TO for examples of how to create and use key functions.- keyword argument (Argumento de Palavra-Chave)
Veja o argument.
- lambda
Uma função de linha anônima consistindo de uma única expression, que é avaliada quando a função é chamada. A sintaxe para criar uma função lambda é
lambda [parameters]: expression
- LBYL
Look before you leap. This coding style explicitly tests for pre-conditions before making calls or lookups. This style contrasts with the EAFP approach and is characterized by the presence of many
if
statements.In a multi-threaded environment, the LBYL approach can risk introducing a race condition between “the looking” and “the leaping”. For example, the code,
if key in mapping: return mapping[key]
can fail if another thread removes key from mapping after the test, but before the lookup. This issue can be solved with locks or by using the EAFP approach.- list
Uma sequence embutida no Python. Apesar do seu nome, é mais próximo de um vetor em outras linguagens do que uma lista encadeada, como o acesso aos elementos é da ordem O(1).
- list comprehension
A compact way to process all or part of the elements in a sequence and return a list with the results.
result = ['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]
generates a list of strings containing even hex numbers (0x..) in the range from 0 to 255. Theif
clause is optional. If omitted, all elements inrange(256)
are processed.- carregador
An object that loads a module. It must define a method named
load_module()
. A loader is typically returned by a finder. See PEP 302 for details andimportlib.abc.Loader
for an abstract base class.- método mágico
Um sinônimo informal para um special method.
- mapeando
A container object that supports arbitrary key lookups and implements the methods specified in the
Mapping
orMutableMapping
abstract base classes. Examples includedict
,collections.defaultdict
,collections.OrderedDict
andcollections.Counter
.- meta path finder
Um finder retornado por uma busca de
sys.meta_path
. Meta localizadores de diretórios são relacionados a, mas diferentes de path entry finders.Veja
importlib.abc.MetaPathFinder
para os métodos que meta localizadores de diretórios implementam.- metaclass
The class of a class. Class definitions create a class name, a class dictionary, and a list of base classes. The metaclass is responsible for taking those three arguments and creating the class. Most object oriented programming languages provide a default implementation. What makes Python special is that it is possible to create custom metaclasses. Most users never need this tool, but when the need arises, metaclasses can provide powerful, elegant solutions. They have been used for logging attribute access, adding thread-safety, tracking object creation, implementing singletons, and many other tasks.
More information can be found in Metaclasses.
- method (método)
A function which is defined inside a class body. If called as an attribute of an instance of that class, the method will get the instance object as its first argument (which is usually called
self
). See function and nested scope.- method resolution order (ordem de resolução de método)
Method Resolution Order is the order in which base classes are searched for a member during lookup. See The Python 2.3 Method Resolution Order for details of the algorithm used by the Python interpreter since the 2.3 release.
- módulo
Um objeto que serve como uma unidade organizacional de código Python. Os módulos têm um namespace contendo objetos Python arbitrários. Os módulos são carregados pelo Python através do processo de: term: importing.
Veja também package.
- module spec (módulo spec)
Uma namespace que contém as informações relacionadas à importação usadas para carregar um módulo. Uma instância de class:importlib.machinery.ModuleSpec.
- MRO
- mutable (mutável)
Objeto mutável é aquele que pode modificar seus valor mas manter seu
id()
. Veja também immutable.- named tuple
O termo “tupla nomeada” é aplicado a qualquer tipo ou classe que herda de tupla e cujos elementos indexáveis também são acessíveis usando atributos nomeados. O tipo ou classe pode ter outras funcionalidades também.
Diversos tipos embutidos são tuplas nomeadas, incluindo os valores retornados por
time.localtime()
eos.stat()
. Outro exemplo ésys.float_info
:>>> sys.float_info[1] # indexed access 1024 >>> sys.float_info.max_exp # named field access 1024 >>> isinstance(sys.float_info, tuple) # kind of tuple True
Algumas tuplas nomeadas são tipos embutidos (tal como os exemplos acima). Alternativamente, uma tupla nomeada pode ser criada a partir da definição de uma classe regular, que herde de
tuple
e que defina campos nomeados. Tal classe pode ser escrita a mão, ou ela pode ser criada com uma função factorycollections.namedtuple()
. A segunda técnica também adiciona alguns métodos extras, que podem não ser encontrados quando foi escrita manualmente, ou em tuplas nomeadas embutidas.- namespace
O lugar em que uma variável é armazenada. Namespaces são implementados como dicionários. Existem os namespaces local, global e nativo, bem como namespaces aninhados em objetos (em métodos). Namespaces suportam modularidade ao previnir conflitos de nomes. Por exemplo, as funções
__builtin__.open()
eos.open()
são diferenciadas por seus namespaces. Namespaces também auxiliam na legibilidade e na manutenibilidade ao torar mais claro quais módulos implementam uma função. Escreverrandom.seed()
ouitertools.izip()
, por exemplo, deixa claro que estas funções são implementadas pelos módulosrandom
eitertools
respectivamente.- namespace package (espaço de nomes do pacote)
Um package PEP 420 que serve apenas como container para sub pacotes. Pacotes de namespaces podem não ter representação física, e especificamente não são como um regular package porque eles não tem um arquivo
__init__.py
.Veja também module.
- nested scope (escopo aninhado)
A habilidade de referir-se a uma variável em uma definição de fechamento. Por exemplo, uma função definida dentro de outra pode referenciar variáveis da função externa. Perceba que escopos aninhados por padrão funcionam apenas por referência e não por atribuição. Variáveis locais podem ler e escrever no escopo mais interno. De forma similar, variáveis globais podem ler e escrever para o namespace global. O
nonlocal
permite escrita para escopos externos.- new-style class (novo estilo de classes)
Antigo nome para o tipo de classes agora usado para todos os objetos de classes. Em versões anteriores do Python, apenas classes com o novo estilo podiam usar recursos novos e versáteis do Python, tais como
__slots__
, descritores, propriedades,__getattribute__()
, métodos de classe, e métodos estáticos.- object (objeto)
Qualquer dado que tenha estado (atributos ou valores) e comportamento definidos (métodos). Também a última classe base de qualquer new-style class.
- pacote
Um module Python é capaz de conter submódulos ou recursivamente, sub-pacotes. Tecnicamente, um pacote é um módulo Python com um atributo
__path__
.Veja também regular package e namespace package.
- parameter (parâmetro)
Uma entidade nomeada na definição de uma função (ou método) que específica um argumento (ou em alguns casos, argumentos) que a função pode receber. Existem cinco tipos de parâmetros:
posicional-ou-nomeado: especifica um argumento que pode ser tanto posicional quanto nomeado. Esse é o tipo padrão de parâmetro, por exemplo foo e bar a seguir:
def func(foo, bar=None): ...
somente-posicional: especifica um argumento que pode ser passado para a função somente por posição. Python não possui sintaxe para definir parâmetros somente-posicionais. Contudo, algumas funções embutidas possuem argumentos somente-posicionais (por exemplo,
abs()
).
somente-nomeado: especifica um argumento que pode ser passado para a função somente por nome. Parâmetros somente-nomeados podem ser definidos com um simples parâmetro var-posicional ou um
*
antes deles na lista de parâmetros na definição da função, por exemplo kw_only1 and kw_only2 a seguir:def func(arg, *, kw_only1, kw_only2): ...
var-posicional: especifica quem uma sequência arbitrária de argumentos posicionais pode ser fornecida (em adição a qualquer argumento posicional já aceito por outros parâmetros). Tal parâmetro pode ser definido colocando um
*
antes do nome, por exemplo args a seguir:def func(*args, **kwargs): ...
var-nomeado: especifica que, arbitrariamente, muitos argumentos nomeados podem ser fornecidos (em adição a qualquer argumento nomeado já aceito por outros parâmetros). Tal parâmetro pode definido colocando-se
**
antes do nome, por exemplo kwargs no exemplo acima.
Parâmetros podem especificar tanto argumentos opcionais quanto obrigatórios, assim como valores padrões para alguns argumentos opcionais.
Veja o termo argument no glossario, a questão :ref:` sobre a diferença entre argumentos e parâmetros <faq-argument-vs-parameter>` na FAQ, a classe
inspect.Parameter
, a seçã Definições de função, e PEP 362.- entrada de caminho
Um local único no term:import path que o path based finder consulta para encontrar módulos a serem importados.
- path entry finder (localizador de entrada de path)
Um finder retornado por um callable em
sys.path_hooks
(ou seja, um path entry hook) que sabe como localizar os módulos path entry.Veja
importlib.abc.PathEntryFinder
para os métodos implementadores da entrada do path.- path entry hook (hook do path de entrada)
Um callable na lista
sys.path_hook
que retorna um path entry finder caso saiba como encontrar módulos em um local específico path entry.- path based finder
Uma das opções padrãot meta path finders que será procurado por módulos import path.
- objeto caminho ou similar
Um objeto representando um arquivo de caminho do sistema. Um objeto caminho ou similar é ou um objeto
str
oubytes
representando um caminho, ou um objeto implementando o protocoloos.PathLike
. Um objeto que suporta o protocoloos.PathLike
pode ser convertido para um arquivo de caminho do sistemastr
oubytes
, através da chamada da funçãoos.fspath()
;os.fsdecode()
eos.fsencode()
podem ser usadas para garantir umstr
oubytes
como resultado, respectivamente. Introduzido na PEP 519.- PEP
Proposta de melhoria do Python. Uma PEP é um documento de design que fornece informação para a comunidade Python, ou descreve uma nova funcionalidade para o Python ou seus predecessores ou ambientes. PEPs devem prover uma especificação técnica concisa e um racional para funcionalidades propostas.
PEPs tem a intenção de ser os mecanismos primários para propor novas funcionalidades significativas, para coletar opiniões da comunidade sobre um problema, e para documentar as decisões de design que foram adicionadas ao Python. O autor da PEP é responsável por construir um consenso dentro da comunidade e documentar opiniões dissidentes.
Veja PEP 1.
- parte
Um conjunto de arquivos em um único diretório (possivelmente armazenado em um arquivo zip) que contribuem para um pacote de namespace, conforme definido em PEP 420.
- positional argument (argumento posicional)
Veja o argument.
- API provisória
Uma API provisória é uma API que foi deliberadamente excluída das bibliotecas padrões com compatibilidade retroativa garantida. Enquanto mudanças maiores para tais interfaces não são esperadas, contanto que elas sejam marcadas como provisórias, mudanças retroativas incompatíveis (até e incluindo a remoção da interface) podem ocorrer se consideradas necessárias pelos desenvolvedores principais. Tais mudanças não serão feitas gratuitamente – elas irão ocorrer apenas se sérias falhas fundamentais forem descobertas, que foram esquecidas anteriormente a inclusão da API.
Mesmo para APIs provisórias, mudanças retroativas incompatíveis são vistas como uma “solução em último caso” - cada tentativa ainda será feita para encontrar uma resolução retroativa compatível para quaisquer problemas encontrados.
Esse processo permite que a biblioteca padrão continue a evoluir com o passar do tempo, sem se prender em erros de design problemáticos por períodos de tempo prolongados. Veja PEP 411 para mais detalhes.
- pacote provisório
Veja provisional API.
- Python 3000
Apelido para a versão do Python 3.x linha de lançamento (cunhado há muito tempo, quando o lançamento da versão 3 era algo em um futuro muito distante.) Esse termo possui a seguinte abreviação: “Py3k”.
- Pythonic
Uma ideia ou um pedaço de código que segue de perto os idiomas mais comuns da linguagem Python, ao invés de implementar códigos usando conceitos comuns a outros idiomas. Por exemplo, um idioma comum em Python é fazer um loop sobre todos os elementos de uma iterável usando a instrução: for statement. Muitas outras línguas não têm esse tipo de construção, então as pessoas que não estão familiarizadas com o Python usam um contador numérico:
for i in range(len(food)): print(food[i])
Ao contrário do método limpo, ou então, Pythônico:
for piece in food: print(piece)
- qualified name (nome qualificado)
Um nome pontilhado (quando 2 termos são ligados por um ponto) que mostra o “path” do escopo global de um módulo para uma classe, função ou método definido num determinado módulo, conforme definido pela PEP 3155. Para funções e classes de nível superior, o nome qualificado é o mesmo que o nome do objeto:
>>> class C: ... class D: ... def meth(self): ... pass ... >>> C.__qualname__ 'C' >>> C.D.__qualname__ 'C.D' >>> C.D.meth.__qualname__ 'C.D.meth'
Quando usado para se referir a módulos, o fully qualified name significa todo o caminho pontilhado para o módulo, incluindo quaisquer pacotes pai, por exemplo:
email.mime.text
:>>> import email.mime.text >>> email.mime.text.__name__ 'email.mime.text'
- reference count
O número de refrências para um objeto. Quando a contagem de referências de um objeto atinge zero, ele é desalocado. Contagem de referências geralmente não é visível no código Python, mas é um elemento chave da implementação CPython. O módulo
sys
define a funçãogetrefcount()
que programadores podem chamar para retornar a contagem de referências para um objeto em particular.- regular package
Um package tradicional, como um diretório contendo um arquivo
__init __. py
.Veja também namespace package.
- __slots__
A declaração dentro de uma classe que salva memória através de pré-declarações de espaço para atributos des instâncias, e eliminando dicionários de instâncias. Apesar de popular, a técnica é um tanto quanto complicada de acertar, e é melhor se for reservada para casos raros, onde existe uma grande quantidade de instâncias em uma aplicação onde a memória é crítica.
- sequência
Um iterable com suporte para acesso eficiente a seus elementos através de índices inteiros via método especial
__getitem__()
e que define o método__len__()
que devolve o tamanho da sequência. Alguns tipos de sequência nativos são:list
,str
,tuple
, ebytes
. Note quedict
também tem suporte para__getitem__()
e__len__()
, mas é considerado um mapa e não uma sequência porque a busca usa uma chave imutável arbitrária em vez de inteiros.A classe base abstrata
collections.abc.Sequence
define uma interface mais rica que vai além de apenas__getitem__()
e__len__()
, adicionandocount()
,index()
,__contains__()
, e__reversed__()
. Tipos que implementam essa interface podem ser explicitamente registrados usandoregister()
.- single dispatch (despacho único)
Uma forma do generic function despacho onde a implementação é escolhida com base no tipo de um único argumento.
- slice
Um objeto geralmente contendo uma parte de uma sequence. Uma fatia é criada usando a notação de subscrito
[]
pode conter também até dois pontos entre números, como emvariable_name[1:3:5]
. A notação de suporte (subscrito) utiliza objetosslice
internamente.- método especial
Um método que é chamado implicitamente pelo Python para executar uma certa operação em um tipo, como uma adição por exemplo. Tais métodos tem nomes iniciando e terminando com dois underscores. Métodos especiais sestão documentados em Nomes de métodos especiais.
- declaração
Uma instrução é parte de uma suíte (um “bloco” de código). Uma instrução é ou uma expression ou uma de várias construções com uma palavra-chave, tal como
if
,while
oufor
.- codificador de texto
Um codec que codifica strings Unicode para bytes.
- arquivo texto
Um file object apto a ler e escrever objetos
str
. Geralmente, um arquivo texto, na verdade, acesse um fluxo de dados de bytes e captura o text encoding automaticamente. Exemplos de arquivos texto são: arquivos abertos em modo texto ('r'
or'w'
),sys.stdin
,sys.stdout
, e instâncias deio.StringIO
.Veja também binary file para um objeto arquivo apto a ler e escrever bytes-like objects.
- aspas triplas
Uma string que está definida com três ocorrências de aspas duplas (”) ou apóstrofes (‘). Enquanto elas não fornecem nenhuma funcionalidade não disponível com strings de aspas simples, elas são úteis para inúmeras razões. Elas permitem que você inclua aspas simples e duplas não encerradas dentro de uma string, e elas podem utilizar múltiplas linhas sem o uso de caracteres de continuação, fazendo-as especialmente úteis quando escrevemos documentação em docstrings.
- tipo
O tipo de um objeto Python determina qual tipo de objeto ele é; todos objetos tem um tipo. Um tipo de objeto é acessivel pelo atributo
__class__
ou pode ser recuperado comtype(obj)
.- tipo alias
Um sinônimo para tipo, criado através da atribuição do tipo para um identificador.
Tipos alias são úteis para simplificar type hints. Por exemplo:
from typing import List, Tuple def remove_gray_shades( colors: List[Tuple[int, int, int]]) -> List[Tuple[int, int, int]]: pass
pode tornar-se mais legível desta forma:
from typing import List, Tuple Color = Tuple[int, int, int] def remove_gray_shades(colors: List[Color]) -> List[Color]: pass
- dica do tipo
Uma annotation que especifica o tipo esperado para uma variável, um atributo de classe, ou um parâmetro de função ou um valor de retorno.
Dicas de tipo são opcionais e não são forçadas pelo Python, mas elas são úteis para ferramentas de análise estática de tipos, e ajudam IDEs a completar e refatorar código.
Dicas de tipos de variáveis globais, atributos de classes, e funções, mas não de variáveis locais, podem ser acessadas usando
typing.get_type_hints()
.- Novas linhas universais
Uma maneira de interpretar fluxos de textos, na qual todos estes são reconhecidos como caracteres de encerramento de linha: a convenção para fim-de-linha no Unix
'\n'
, a convenção no Windows'\r\n'
, e a antiga convenção no Macintosh'\r'
. Veja PEP 278 e PEP 3116, bem comobytes.splitlines()
para uso adicional.- anotação variável
Uma annotation de uma variável ou um atributo de classe.
Ao fazer uma anotação de uma variável ou atributo de classe, a atribuição é opcional:
class C: field: 'annotation'
Variable annotations are usually used for type hints: for example this variable is expected to take
int
values:count: int = 0
A sintaxe de anotação de variável é explicada na seção instruções de atribuição anotado.
Veja function annotation, PEP 484 e PEP 526, que descrevem esta funcionalidade.
- ambiente virtual
Um ambiente de execução isolado que permite usuários Python e aplicações instalarem e atualizarem pacotes Python sem interferir no comportamento de outras aplicações Python em execução no mesmo sistema.
Veja também
venv
.- virtual machine
Um computador definido inteiramente em software. A máquina virtual de Python executa o bytecode emitido pelo compilador de bytecode.
- Zen of Python
Lista de princípios de projeto e filosofias do Python que são úteis para a compreensão e uso da linguagem. A lista é exibida quando se digita “
import this
” no console interativo.