Foros del Web » Programando para Internet » Python »

A ver a ver, Que alguien me aclare

Estas en el tema de A ver a ver, Que alguien me aclare en el foro de Python en Foros del Web. Veamos tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original #!/usr/bin/python import MySQLdb   def __init__ ( self ) :     pass   def ...
  #1 (permalink)  
Antiguo 19/05/2010, 07:35
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 13 años, 6 meses
Puntos: 6
A ver a ver, Que alguien me aclare

Veamos tengo este codigo:

Código Python:
Ver original
  1. #!/usr/bin/python
  2. import MySQLdb
  3.  
  4. def __init__ (self):
  5.     pass
  6.  
  7. def Conn (self):
  8.     """Connection to mysql"""
  9.     host    = "localhost"
  10.     database= "test"
  11.     username= "root"
  12.     password= "1234"
  13.     db=MySQLdb.connect(host,username,password,database)
  14.     return db
  15.  
  16. db=Conn
  17. cursor=db.cursor()
  18. sql='SELECT * FROM test;'
  19. cursor.execute(sql)
  20. resultado=re.fetchall()
  21. for registro in resultado:
  22.     print registro[0]

y estan simple que me dá verguenza hasta ponerlo, pero es que soy newie en python (hoy) y ya le estoy cogiendo coraje, no entiendo como algo tan simple me puede estar dando tantos problemas, me arroja:

Código:
Traceback (most recent call last):
  File "~/src/reportingtool.py", line 18, in <module>
    cursor=db.cursor()
AttributeError: 'function' object has no attribute 'cursor'
¿Alguien me explica que pasa?
  #2 (permalink)  
Antiguo 19/05/2010, 08:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 17 años, 9 meses
Puntos: 839
Respuesta: A ver a ver, Que alguien me aclare

Si en línea 16 lo que deseas es llamar a la función debe ser:
Código Python:
Ver original
  1. db = Conn()
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/05/2010, 08:04
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: A ver a ver, Que alguien me aclare

Siento no haberlo puesto antes, eso ya lo probé, si pongo los parentesis como se llamaria a una funcion en cualquier otro lenguaje me dice:

Código:
Traceback (most recent call last):
  File "~/src/reportingtool.py", line 17, in <module>
    db=Conn()
TypeError: Conn() takes exactly 1 argument (0 given)
: /

EDITO: He probado a quitar el self de la funcion y funciona...La duda que tengo ahora es que según he leido en 2 o 3 manuales esa variable se pone siempre...la uses o no, alguna idea?
  #4 (permalink)  
Antiguo 19/05/2010, 08:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 17 años, 9 meses
Puntos: 839
Respuesta: A ver a ver, Que alguien me aclare

Cita:
Iniciado por Nekeniehl Ver Mensaje
He probado a quitar el self de la funcion y funciona...La duda que tengo ahora es que según he leido en 2 o 3 manuales esa variable se pone siempre...la uses o no, alguna idea?
Se usa cuando es un método de una clase. En este caso no es.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/05/2010, 08:10
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: A ver a ver, Que alguien me aclare

Gracias =D, seguro que nos veremos más por este subforo ya que me espera un trabajazo..

Etiquetas: ver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:54.