Ver índice de contenidos del libro

14.1. Tipos

En los temas que vimos hasta ahora nos hemos encontrado con numerosos tipos provistos por Python, los números, las cadenas de caracteres, las listas, las tuplas, los diccionarios, los archivos, etc. Cada uno de estos tipos tiene sus características, tienen operaciones propias de cada uno y nos proveen una gran cantidad de funcionalidades que podemos utilizar para nuestros programas.

Como ya se dijo en unidades anteriores, para saber de qué tipo es una variable, utilizamos la función type, y para saber qué métodos y atributos tiene esa variable utilizamos la función dir.

>>> a = open("archivo.txt")
>>> type(a)
 
<type 'file'>
>>> dir(a)
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__',
'__getattribute__', '__hash__', '__init__', '__iter__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__',
'close', 'closed', 'encoding', 'fileno', 'flush', 'isatty', 'mode', 'name',
'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek',
'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']

En este caso, la función dir nos muestra los métodos que tiene un objeto del tipo file. Podemos ver en el listado los métodos que ya hemos visto al operar con archivos, junto con otros métodos con nombres raros como __str__ o __doc__, estos métodos son especiales en Python, más adelante veremos para qué sirven y cómo se usan.

En el listado que nos da dir están los atributos y métodos mezclados. Si necesitamos saber cuáles son atributos y cuáles son métodos, podemos hacerlo nuevamente mediante el uso de type.

>>> type (a.name)
<type 'str'>
>>> a.name
'archivo.txt'
>>> type (a.tell)
<type 'builtin_function_or_method'>
>>> a.tell()
0L

Es decir que name es un atributo del objeto (el nombre del archivo), mientras que tell es un método, que para utilizarlo debemos llamarlo con paréntesis.

Nota Como ya sabemos, en Python, los métodos se invocan con la notación punto: archivo.tell(), cadena.split(":").

Analicemos la segunda expresión. El significado de ésta es: la variable cadena, llama al método split (del cual es dueña por tratarse de una variable de tipo str) con el argumento ":".

Sería equivalente a llamar a la función split pasándole como primer parámetro la variable, y como segundo parámetro el delimitador. Pero la diferencia de notación resalta que el método split es un método de cadenas, y que no se lo puede utilizar con variables de otros tipos.

Esta notación provocó un cambio de paradigma en la programación, y es uno de los ejes de la Programación Orientada a Objetos

Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano, Nicolás Paez. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.