Sin duda usaste el identificador sum
anteriormente en su código como un nombre de variable local, y el último valor que enlazó fue un int
. Por lo tanto, en ese fragmento de código, intenta llamar al int
. print sum
justo antes de intentar llamar y verá, pero la inspección del código probablemente lo revelará más rápido.
Este tipo de problema es por qué los expertos Pythonistas le siguen diciendo a los novatos una y otra vez "¡no use nombres integrados para sus propias variables!" incluso cuando está aparentemente no herir a un fragmento de código específica: es un hábito horrible, y un error esperando a suceder, si se utiliza identificadores tales como sum
, file
, list
, etc, como sus propias variables o funciones -)
Una alternativa frecuentemente recomendada es poner un sufijo de subrayado en los identificadores que de lo contrario colisionarían con las palabras reservadas y los identificadores incorporados; es decir, 'type_' o' sum_' o 'from_' (si le interesa usar preposiciones como identificadores). – cdleary