1

quisiera saber como funciona self en python, se que tiene que ver algo con las clases pero no lo tengo tan claro y necesito saberlo para convertirlo en un arreglo, aqui hay poco del codigo

class Button(pygame.sprite.Sprite):
    def __init__(self,image):
       pygame.sprite.Sprite.__init__(self)
       self.image, self.rect = load_image(image)
    def setCords(self,x,y):
       self.rect.topleft = x,y
       screen.blit(self.image, (x,y))
    def pressed(self,mouse):
        if mouse[0] > self.rect.topleft[0]:
            if mouse[1] > self.rect.topleft[1]:
                if mouse[0] < self.rect.bottomright[0]:
                    if mouse[1] < self.rect.bottomright[1]:
                      return True
                    else: return False
                else: return False
            else: return False
         else: return False

Se agradece desde ya la ayuda y si me pueden dar consejos de como pasarlo a arreglo y funcion se los agradeceria mucho ya que recien estoy con todo esto

Wolf
  • 127
  • 2
  • 5
  • 18
  • self solo es una convención para pasar la instancia de la clase a los métodos de instancia. Mírate [¿Para qué se utiliza self en POO en Python?](https://es.stackoverflow.com/questions/90357/para-qu%c3%a9-se-utiliza-self-en-poo-en-python) y [¿Cuál es la diferencia entre self y super(Clase, self)?](https://es.stackoverflow.com/questions/48520/cu%c3%a1l-es-la-diferencia-entre-self-y-superclase-self/48595#48595). – FJSevilla Oct 07 '18 at 05:39
  • `self` es el primer parámetro que reciben los métodos de un objeto cuando lo invocas con la sintaxis: `objeto.metodo()`. El método recibirá como primer parámetro una referencia al `objeto` desde el que fue invocado y a través de él podrás acceder a atributos de ese objeto. No veo qué relación puede tener esto con lo que pides de "convertir en arreglo". ¿Qué quieres convertir en arreglo? – abulafia Oct 07 '18 at 11:15
  • Que segun lei self es considerado como un puntero y con eso ya caeria en el caso de ser parte de listas... Lo que la profesora quiere es que no use listas pero como no explica nada de eso no se ni como son las listas en python TwT ayudaaaa – Wolf Oct 07 '18 at 16:24
  • 1
    Sí, `self` es "como un puntero" en el sentido de que no es más que una referencia a un lugar de la memoria, donde está el objeto. Pero en python toda variable es en realidad una referencia a un objeto en memoria. `self` no tiene nada de particular a este respecto, es simplemente un nombre que se refiere al objeto que en ese momento está ejecutando el método. No tiene ninguna relación con arrays. Sigo sin entender qué transformación necesitas hacer en ese código, Tu profesora dice que no uses listas, pero no las estás usando que yo vea. `self` no es una lista, es una referencia al objeto. – abulafia Oct 07 '18 at 19:15
  • Esa era mi duda, como era tipo puntero pense que si o si se consideraba lista pero con tu respuesta me quedo mas tranquila, muchas gracias :) esto... disculpa las molestias pero como podria hacer un menu y submenu para elegir la dificultad? – Wolf Oct 08 '18 at 00:30
  • @Wolf Creo que deberías crear otra pregunta para preguntar esto, por no mezclar. Además en esa otra pregunta deberías especificar claramente qué quieres y qué has intentado (y por qué no te ha salido) – abulafia Oct 08 '18 at 14:56

0 Answers0