2010-03-17 8 views

Respuesta

41

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 -)

+1

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

1
!

Me gustaría agregar lo que dijo Alex Martelli al decir que no use la suma como nombre de variable, pero si su programa ya es demasiado largo o si está inactivo y no quiere volver a empezar puede hacer

sum2 = sum 
del sum 

para transferir el valor de la suma en SUM2 (si es necesario) y borrar la suma variable (que le permite continuar trabajando con la función sUMA)

Cuestiones relacionadas