Python para todos: Diferencia entre método y funciónPaloma Recuero de los Santos 13 mayo, 2020 Cuando damos nuestros primeros pasos en Python, nos encontramos con dos conceptos muy similares que nos pueden llevar a confusión: funciones y métodos. En este post, intentaremos aclarar esta duda de forma muy sencilla. Funciones en Python Como en otros lenguajes de programación, una función no es más que una porción o bloque de código reutilizable que se encarga de realizar una determinada tarea. Resulta muy cómodo trabajar con funciones, porque no es necesario reescribir ese código cada vez que nos enfrentamos a dicha tarea. Tan solo, llamar a la función. «Built-in» functions En Python hay funciones ya creadas (built-in functions), que pueden requerir o no parámetros, como por ejemplo, la función help(), que ofrece la ayuda del sistema sobre determinado comando, la función abs(), que devuelve el valor absoluto de un número etc… Figura 1: ejemplo de uso de la función help() Figura 2: ejemplo de uso de la función abs() Crear funciones en Python Si no existe ya la función que necesitamos, resulta muy sencillo crearla en Python. Primero la declaramos con def (nombre función), y luego definimos su contenido (código indentado dentro de la función). Por ejemplo, podemos crear una función que sume dos números. Después, hacemos una llamada a la función, facilitándole los valores de los dos parámetros: Figura 3: ejemplo de definición de la función sumar() Hasta aquí, todo muy claro. Pasamos a introducir el segundo concepto. Veremos que un método, es algo parecido a una función, una porción de código que realiza determinada tarea, pero no es exactamente lo mismo. Métodos en Python Python es un lenguaje multiparadigma, que soporta programación orientada a objetos (POO), siendo las clases y los objetos sus principales bloques de desarrollo. Las clases son los modelos sobre los cuáles se construirán nuestros objetos, mientras que los objetos son instancias de esa clase. Por ejemplo, vamos a crear la clase «Persona», con dos atributos, «nombre» y «edad». A continuación, creamos un objeto de esa clase: Pablo, 30 años. Figura 4: ejemplo de definición de una clase y un objeto Los métodos son acciones o funciones que puede realizar un objeto. Al igual que Python ofrece una serie de funciones «built-in», también pone a nuestra disposición un conjunto de métodos ya creados. Estos métodos dependen del tipo de objeto con el que estemos trabajando. Los objetos en Python pueden ser de distintos tipos: cadena de caracteres (string)booleanos (booleans)números enteros (integer)números decimales (float)listas (list) Por ejemplo, para los objetos tipo cadena de caracteres, tenemos métodos como : capitalize(), que convierte en mayúscula la primera letra de la cadenaindex(), que busca determinado carácter en la cadena y devuelve su posiciónsplit(), que divide la cadena según el separador que indiquemos y la convierte en un listatitle(), que convierte el primer carácter de cada palabra en mayúsculasetc También hay métodos ya creados para otro tipo de objetos, como listas, diccionarios, tuplas, sets o incluso ficheros. Si no nos sirve ninguno para nuestro objetivo, siempre podemos crearlo nosotros mismos, como ocurre con las funciones. Para acceder a los métodos y propiedades de un objeto, Python utiliza una sintaxis muy simple: el nombre del objeto, seguido de punto y la propiedad o método al cuál se desea acceder. Por ejemplo, vamos a probar los métodos title() y count() sobre el string «primavera»: Figura 5: ejemplo de uso de métodos de string Métodos vs funciones ¿Cuál es entonces la diferencia entre métodos y funciones?. La principal diferencia es que un método es parte de una clase, es decir, es parte de la funcionalidad que le damos a un objeto. Por tanto, siempre va a estar asociado a un objeto. Sin embargo, las funciones en Python, están definidas por si mismas y no pertenecen a ninguna clase. Al ser intrínsecos al objeto en sí, cada objeto tiene sus propios métodos. Incluso aunque se llamen igual, pueden tener un significado distinto. Por ejemplo, el método index está disponible para los objetos string y list. Sobre una cadena de caracteres, da el índice de la letra en esa palabra, sobre una lista, da la posición de un elemento en una lista Para mantenerte al día con LUCA visita nuestra página web, suscríbete a LUCA Data Speaks o síguenos en Twitter, LinkedIn y YouTube. Caso de éxito: Lograr una estrategia de negocio basada en audienciasPhyton para todos: 5 formas de detectar «missing values»
AI of Things Alumbrado público inteligente: oportunidades de negocio y beneficios para municipios y ciudadanos El alumbrado público inteligente es uno de los pilares de las ciudades inteligentes. De hecho, es uno de los mejores ejemplos de lo que significa el término Smart City:...
Nacho Palou Humanidad aumentada, el concepto que popularizó un ex-CEO de Google y que está más vigente que nunca Hace algunos años el entonces CEO de Google, Eric Schmidt, popularizó el concepto “humanidad aumentada”. Este término se refiere a la capacidad que tiene la tecnología de “mejorar las...
Nacho Palou Empieza ya a programar Inteligencia Artificial: lenguajes, herramientas y recomendaciones Existe una relación muy estrecha en Big Data e Inteligencia Artificial (IA): Big Data consiste en capturar, procesar y analizar grandes cantidades de datos. Cuando estos datos se...
Alberto García García-Castro Incentivos en redes blockchain empresariales: un nuevo enfoque La importancia del uso de incentivos que premien la colaboración y las buenas prácticas de los participantes en una red blockchain siempre ha sido parte fundamental de la tecnología....
Nacho Palou Blockchain para incrementar la confianza en la compra y venta de vehículos Cada vez es más habitual encontrar en los vehículos tecnologías digitales como conectividad, Internet de las Cosas o Inteligencia Artificial. Por ejemplo, en forma de asistentes digitales, servicios de...
Santiago Morante Inteligencia Artificial en la ficción: The Bestiary Chronicles, de Steve Coulson En la era de la inteligencia artificial (IA), es común escuchar hablar de cómo esta tecnología puede revolucionar diferentes ámbitos de la vida humana, desde la medicina hasta la...