Foros del Web » Programando para Internet » Python »

argumentos para una instancia

Estas en el tema de argumentos para una instancia en el foro de Python en Foros del Web. hola no he podido terminar mi royecto necesito saber como poner un argumento para evitar errores como este unbound method AddRoot() must be called with ...
  #1 (permalink)  
Antiguo 15/07/2009, 14:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
argumentos para una instancia

hola no he podido terminar mi royecto necesito saber como poner un argumento
para evitar errores como este

unbound method AddRoot() must be called with ProjectExplorer instance as first argument (got str instance instead)

ya intente ponerlo como argumento en la definicion de la clase ProjectExplorer y no funciona
  #2 (permalink)  
Antiguo 15/07/2009, 20:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: argumentos para una instancia

Bien por que no publicas la parte del código que te da problemas?

Ya que no tengo ni idea de que estas intentando hacer.
  #3 (permalink)  
Antiguo 20/07/2009, 10:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: argumentos para una instancia

ups disculpa la tardanza ...
bien aqui esta
Código python:
Ver original
  1. class ProjectExplorer(wx.TreeCtrl):
  2.     def __init__(self, parent, id):
  3.         wx.TreeCtrl.__init__(self, parent, id, style=wx.TR_DEFAULT_STYLE)
  4.        
  5.         self.projectdirty = False
  6.         self.root = None
  7.         self.close = False
  8.  
  9. class program(wx.Frame):
  10.     def __init__(self, parent, id, title):
  11.         wx.Frame.__init__(self, parent, id, title, size=(850, 700))
  12.  
  13.         self.n = 0
  14.         self.Center()
  15.         self.x = 0
  16.         self.count = 0
  17.         self.Edt = prop(self, -1)
  18.  
  19. #*******************************
  20.         self.nb = nb(self, -1)
  21.        
  22.         self.man = wx.aui.AuiManager()
  23.         self.man.SetManagedWindow(self)  
  24. #..........................
  25.  
  26.     def project_open(self, project_file):
  27.         try:
  28.             input = open(project_file, 'r')
  29.             self.ProjectExplorer.DeleteAllItems()
  30.  
  31.             self.project_file = project_file
  32.             name = input.readline().replace ('\n', '')
  33.             self.SetTitle(name)
  34.  
  35.             self.root = self.ProjectExplorer.AddRoot(name)
  36.             self.activeitem = self.root
  37.             for line in input.readlines():
  38.                 self.ProjectExplorer.AppendItem(self.root, line.replace('\n', ''))
  39.             input.close()
  40.             self.ProjectExplorer.Expand(self.root)
  41.  
  42.             StyleEditor.Clear()
  43.             StyleEditor.Enable(False)
  44.  
  45.             projectdirty = False
  46.         except IOError:
  47.             pass

el DeleteAllItems()

y luego el add root
son los que me dan problemas primero uno y luego el otro

Código:
>>> 
Traceback (most recent call last):
  File "C:\Users\oscars\Desktop\oskdocumentos\wxpyide\wxPyIDE.py", line 1174, in OnAProject
    self.project_open(dlg.GetPath())
  File "C:\Users\oscars\Desktop\oskdocumentos\wxpyide\wxPyIDE.py", line 1197, in project_open
    self.ProjectExplorer.DeleteAllItems()
TypeError: unbound method DeleteAllItems() must be called with ProjectExplorer instance as first argument (got nothing instead)
>>>
no se como pasar eventos de clase en clase
  #4 (permalink)  
Antiguo 21/07/2009, 10:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: argumentos para una instancia

Código python:
Ver original
  1. self.ProjectExplorer.DeleteAllItems()

Tienes que instanciar y luego llamar a la funcion que quieras.
Ejemplo:
Código python:
Ver original
  1. self.ProjectExplorer = ProyectExplorer(argumentos aqui)
  2. self.ProjectExplorer.DeleteAllItems()
  #5 (permalink)  
Antiguo 21/07/2009, 18:56
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: argumentos para una instancia

le puse estos argumentos¨
Código python:
Ver original
  1. self.ProjectExplorer = ProjectExplorer(FileExplorer, -1)#, wx.DefaultSize)
  2. #---------------------------------------------------------

pero me dice que le falta un argumento al TreeCtrl de tipo wxWindow

pero no se cual podria ser
  #6 (permalink)  
Antiguo 21/07/2009, 21:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: argumentos para una instancia

Momento de donde apareció FileExplorer ???!!!

En el código anterior no aparece, no posteaste el error que arroja y al parecer FileExplorer no es del tipo requerido.

Última edición por razpeitia; 21/07/2009 a las 22:09
  #7 (permalink)  
Antiguo 22/07/2009, 10:03
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: argumentos para una instancia

el codigo es muy grande no o puedo postear todo

Código python:
Ver original
  1. class FileExplorer(wx.Notebook):
  2.     def __init__(self, parent, id):
  3.         wx.Notebook.__init__(self, parent, id)#, size=(200, 200))
  4.  
  5.         li = wx.ImageList(16, 16)
  6.         im0 = li.Add(wx.Bitmap('iconos/view_tree.ico'))
  7.         im1 = li.Add(wx.Bitmap('iconos/list.ico'))
  8.  
  9.         self.es = ProjectExplorer(self, -1)
  10.  
  11.         self.AddPage(self.es, "Project")
  12.  
  13.         pnl = wx.Panel(self, -1)
  14.  
  15.         self.AddPage(pnl, "Explorador")
  16.         self.AssignImageList(li)
  17.         self.SetPageImage(0, im0)
  18.         self.SetPageImage(1, im1)
  19.         self.SetBackgroundColour(self.GetThemeBackgroundColour())

solo es un notebook
  #8 (permalink)  
Antiguo 22/07/2009, 21:42
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: argumentos para una instancia

Entiendo perfectamente que no puedas postear todo el código, pero que estas tratando de hacer?

Pasar una clase como argumento?
No puedes pasar clases como argumentos. Puedes pasar instancias de clases que son llamadas objetos.
  #9 (permalink)  
Antiguo 23/07/2009, 14:52
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: argumentos para una instancia

como puedo hacer eso ¿podrias poner un ejemplo?
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




La zona horaria es GMT -6. Ahora son las 07:39.