Anuncio

Colapsar
No hay ningún anuncio todavía.

Multiples objetos en python

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Python Multiples objetos en python

    Una consulta, quiero generar una clase y dentro de ella una funcion que calcule el modulo de cualquier vector de cualquier dimension, es decir quiero algo como esto:

    Código:
    import math
    class VecNd:
              def __init__(x,*y):
                        self.x=x
                        for i in y:
                                  self.i=i
    
              def modulo(self):
                        #Aca que deberia ir para calcular el modulo? se que en dos dimensiones deberia ser, "return math.sqrt(self.x**2+self.y**2)" pero para N dimensiones como es?


    Como seria para muchos objetos?
    Desde ya gracias.
    Última edición por lindtaylor; 30/11/2012, 00:57:22.
    asdadsdsassdadsasdadsadsads

  • #2
    Re: Multiples objetos en python

    Varias cosas:
    • En la función __init__ el parámetro self tiene que estar explícito.
    • Lo que haces en el loop for es asignar en la propiedad i los valores de las y, el valor de i al salir del bucle es el de la última y



    Mi solución:
    Código:
    import math
    
    
    class VecNd:
        def __init__(self,*componentes):
            self.componentes=[] #guardamos las componentes del vector en una lista
            for comp in componentes:
                self.componentes.append(comp)
    
    
        def modulo(self):
            suma=0
            for comp in self.componentes:
                suma+=comp**2
            return math.sqrt(suma)
        def __getitem__(self,indice):
            #permite acceder a cada uno de los componentes con:
            # vector[indice] ,con el indice empezando en 0 hasta n-1
            return self.componentes[indice]
        
            
    
    
    if __name__=="__main__":
        vec=VecNd(2,3,4,5)
        print("Modulo:")
        print(vec.modulo()) #7.348
        print("Cuarta componente")
        print(vec[3]) #Da la cuarta componente

    Comentario

    Contenido relacionado

    Colapsar

    Trabajando...
    X