Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/07/2009, 22:10
AxL456
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: que significa self

Cita:
Iniciado por razpeitia Ver Mensaje
Para entender self, tienes que aprender primero POO

Solo te diré de la manera mas sencilla posible, que self sirve para hacer referencias a los atributos de clase. Y es necesario en cada método de la clase.
yo entiendo la base de la POO.

es un paradigma que usa "jerarquia" y "herencia" para hacer reusables los "objetos" en el codigo que uno escribe (si estoy equivocado favor corregirme).

Lo que pasa es que ver tantos selfs en los codigos me confunde

dejame colocarte aqui unas lineas de un codigo y tratar de explicarlo a ver si lo estoy entendiendo bien:

tengo estos dos modulos:

TKgui2.py
Código:
from Tkinter import *

class hello(Frame):
    def __init__(self,parent=None):
        Frame.__init__(self,parent)
        self.pack()
        self.data=42
        self.make_widgets()
    def make_widgets(self):
        widget=Button(self,text="Hello frame world!",
                      command=self.msg)
        widget.pack(side=LEFT)
    def msg(self):
        self.data+=1
        print "hello Frame World %s" % self.data

if __name__=="__main__": hello().mainloop()
TKgui.py
Código:
from Tkinter import *
from sys import exit
from TKgui2 import hello

parent=Frame(None)
parent.pack()
hello(parent).pack(side=RIGHT)

Button(parent,text="attach",command=exit).pack(side=LEFT)
parent.mainloop()
es correcto decir que en el archivo TKgui.py la siguiente linea:
Código:
hello(parent).pack(side=RIGHT)
al hacer un llamado a la clase hello reemplaza la linea:
self.pack()

por esta nueva linea:
.pack(side=RIGHT)

en pocas palabras, parent hereda todos los atributos de la clase Hello exceptuando la linea (self.pack() ) la cuales es reemplazada por .pack(side=RIGHT)

estoy interpretando correctamente esto?