Cita:
Iniciado por razpeitia 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?