[Curso de Python] Tipos Built-In - Parte 1
por
em 16-10-2010 às 11:27 (22859 Visualizações)
Antes de prosseguir leia os artigos anteriores aqui
Estou de volta após um curto período de recesso...
Na última aula comentei novamente sobre os tipos builtins e destaquei alguns que já foram abordados nesse curso. A partir de hoje começa uma série de posts explorando cada tipo Built-In relevante.
Tipos Built-In - Parte 1
Quando digo "tipos built-in" estou me referindo a tipos de variáveis como int, string e etc. O Python possui diversos tipos, inclusive possui tipos que não são utilizados comumente durante o desenvolvimento de programas. Abaixo segue uma listagem de todos os tipos buit-in do Python:
- None;
- NotImplemented;
- Ellipsis;
- Numericos:
- int;
- long;
- float;
- bool;
- complex;
- Sequências Imutáveis:
- str;
- unicode;
- tuple;
- Sequências Mutáveis:
- list;
- bytearray;
- Sets:
- set;
- frozenset;
- Mapeamentos:
- dict;
- slice;
- callable;
- file;
Como comentado, muitos desses tipos não são utilizados durante o desenvolvimento de programas, mas podem vir a ser úteis portanto, é bom conhece-los.
None
Começando do topo da lista temos o tipo None. O None é o vazio do Python, geralmente utilizado para inicializar variáveis. O valor booleano do None é false, dessa forma podemos testar se uma variável está vazia ou não:
Código python:>>> x = None >>> print x None >>> if x == True: ... print 'none e true' ... else: ... print 'none e false' ... none e false >>>
Para simplificar o if e tornar o código mais legível podemos simplesmente escrever da seguinte forma:
Código python:>>> x = None >>> if x: ... print 'none e true' ... else: ... print 'none e false' ... none e false >>>
O None também é retornado quando uma função não retorna nenhum valor explicitamente. Abaixo um exemplo:
Código python:>>> def teste(): ... print 'funcao teste' ... >>> >>> y = teste() funcao teste >>> print y None >>>
NotImplemented
Em seguida temos o tipo NotImplemented. Esta constante é utilizado para controlar novas implementações. Quando uma nova função/método está sendo implementada mas não está terminada ela retornará o valor NotImplemented. Só por curiosidade, o valor booleano de NotImplemented é True:
Código python:>>> NotImplemented NotImplemented >>> print NotImplemented NotImplemented >>> type(NotImplemented) <type 'NotImplementedType'> >>> bool(NotImplemented) True >>>
Ellipsis...
O Ellipsis também é uma constante, ela representa o simbolo '...' utilizado no slicing de objetos criados pelo programador. Nativamente o Ellipsis só é suportado por objetos da biblioteca NumPy, voltada para cálculos e computação científica. Esse é um dos objetos mais estranhos que eu já vi no Python:
Código python:>>> Ellipsis Ellipsis >>> print Ellipsis Ellipsis >>> ... File "<stdin>", line 1 ... ^ SyntaxError: invalid syntax >>>
A Ellipsis só parece funcionar dentro do slicing. Segue um exemplo simples para demonstrar a existência do Ellipsis e possíveis aplicações:
Código python:>>> class Teste: ... def __getitem__(self, pedacos): ... print 'pedaços:',pedacos ... >>> >>> >>> x = Teste() >>> x[1] pedaços: 1 >>> x[1:2] pedaços: slice(1, 2, None) >>> x[1, ...] pedaços: (1, Ellipsis) >>> x[1, ..., 4:7] pedaços: (1, Ellipsis, slice(4, 7, None)) >>>
Este exemplo aborda vário conhecimentos avançados como orientação a objeto e métodos especiais, mas espero que tenha sido claro o suficiente. Este exemplo é bem abrangente, ele mostra também o tipo slice que será comentado futuramente.
Com o exemplo acima podemos ver que o simbolo '...' foi substituído pelo nome Ellipsis. A Ellipsis pode ter diversas implementações, tudo depende do ponto de vista do programador. Podemos, por exemplo, dizer que [1, ...] irá retornar todos os objetos de uma lista com exceção do objeto de índice 1.
Por hoje é só pessoal...
Comentários
+ Enviar Comentário