Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/06/2011, 01:58
Fsg
 
Fecha de Ingreso: junio-2009
Mensajes: 155
Antigüedad: 15 años, 5 meses
Puntos: 5
Pregunta Por que me sale esto ? :TypeError: 'dict' object is not callable

Hola que tal, apenas hoy es mi primer dia en python, me he bajado un libro, llamado Python para todos, donde venia un ejemplo, lo corro y me da el siguiente error:

Cita:
saludar("fr")()
File "C:\Users\fernando\workspace\probando\src\revistie ndoobjetos.py", line 22, in saludar
return lang_func(lang)
TypeError: 'dict' object is not callable
El codigo es el siguiente:

Código Python:
Ver original
  1. #!/usr/bin/env python
  2. #-*- coding: UTF-8 -*-
  3. '''
  4. Created on 26/06/2011
  5.  
  6. @author: fernando
  7. '''
  8. def saludar(lang):
  9.     def saludar_es():
  10.         print "Hola"
  11.    
  12.     def saludar_en():
  13.         print "Hi"
  14.    
  15.     def saludar_fr():
  16.         print "Salut"
  17.  
  18.     lang_func = {"es": saludar_es(),
  19.                  "en": saludar_en(),
  20.                  "fr": saludar_fr()}
  21.    
  22.     return lang_func(lang)
  23. saludar("fr")()


Intente modificarlo,sacando los metodos de saludar(lang) por que pense que a lo mejor porque no podia retornar, por algunas cosas que vi en internet, es que por la API , lanzaba esa excepcion, intente modificarlo de esa manera, sacando los metodos, quitandole el return y asigarlo en una variable, pero aun asi el problema persiste.

Otra cosa que vi, que cuando intento correrlo, me aparece los mensajes de los metodos anteriores, ¿eso a que se debe, si yo nunca los estoy invocando?

Ese ejemplo se puede ver en Python para todos, lo deje igual.
Saludos y gracias por la ayuda.

Última edición por AlvaroG; 27/06/2011 a las 08:42 Razón: coloreado de sintaxis