Foros del Web » Programando para Internet » Python »

que significa self

Estas en el tema de que significa self en el foro de Python en Foros del Web. ya yo venia pensando que python era demasiado excelente para ser un lenguaje de programacion cuando me topo con el famosos "self" leyendo sobre programacion ...
  #1 (permalink)  
Antiguo 22/07/2009, 20:23
AxL456
Invitado
 
Mensajes: n/a
Puntos:
que significa self

ya yo venia pensando que python era demasiado excelente para ser un lenguaje de programacion cuando me topo con el famosos "self" leyendo sobre programacion orientada a objetos..

se que la POO es opcional y bien pudiera escribir programas sin usar ese paradigma pero me interesa mucho aprender o mejor dicho entender la POO

El unico inconveniente es que no termino de entender para que $%&$ sirve la variable "self" si por favor me dieran una explicación de esas sencillas, como si estuviera en pre escolar se los agradeceria mucho
  #2 (permalink)  
Antiguo 22/07/2009, 20:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: que significa self

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.
  #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?
  #4 (permalink)  
Antiguo 23/07/2009, 07:30
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 20 años, 2 meses
Puntos: 3
Respuesta: que significa self

El uso de self es la forma particular en que python soporta los objetos, es como el this de C++, Java o PHP, self en python no es una palabra reservada y se puede usar cualquier otra palabra, self es más una convención en el lenguaje que hace el código más legible, facilita el resaltado de sintaxis.
__________________
Revista Código Latino
SoloCodigo
  #5 (permalink)  
Antiguo 21/09/2011, 13:40
 
Fecha de Ingreso: septiembre-2011
Ubicación: Montornes del Valles
Mensajes: 1
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: que significa self

Self, al menos en Smalltalk (que en definitiva es el padre de la POO) es la forma en que cualquier clase u objeto se refiere a si mismo.

En un metodo poner self.propiedad es equivalente a poner nombreDelObjetoODeLaClaseALaQuePerteneceElMetodo.p ropiedad

Última edición por smg1952; 21/09/2011 a las 14:19
  #6 (permalink)  
Antiguo 21/09/2011, 15:34
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: que significa self

Por favor no revivir temas antiguos.


Saludos.
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.
Tema Cerrado




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