elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Clase con atributos e instancias o if, elif, elif....
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Clase con atributos e instancias o if, elif, elif....  (Leído 3,051 veces)
PUAROT

Desconectado Desconectado

Mensajes: 86



Ver Perfil WWW
Clase con atributos e instancias o if, elif, elif....
« en: 19 Febrero 2017, 12:40 pm »

Estoy empezando un nuevo script en Python3,5 y como soy novato, me surgen dudas sobre como es mejor hacer las cosas.
Hay muchas formas de llegar a un mismo resultado en Python, pero me gustaría saber como es mas "adecuado" hacerlo.

Por ejemplo, estoy empezando un script el cual me averigüe el valor de una resistencia  a partir de sus colores (ya se que habrá miles hechos) y se me ocurren varias formas de hacerlo.

La primera es crear una clase resistencia
Código
  1. class Resistencia():
  2.    def __init__(self,color1=None,color2=None,color3=None,color4=None,color5=None,color6=None):
  3.        self.color1 = color1
  4.        self.color2 = color2
  5.        self.color3 = color3
  6.        self.color4 = color4
  7.        self.color5 = color5
  8.        self.color6 = color6

Con un método del tipo :
Código
  1. def valor_color(self,color):
  2.        if color == "negro":
  3.            valor = 0
  4.            multiplicador = 1
  5.            tolerancia = None
  6.        elif color == "marron":
  7.            valor = 1
  8.            multiplicador = 10
  9.            tolerancia = 1
  10.        elif color == "rojo":
  11.            valor = 2
  12.            multiplicador = 10
  13.            tolerancia = 2
y un método que calcule el valor total en base a los colores.....


Por otra parte se me ocurre crear una clase color con sus atributos para luego utilizarlos del tipo :
Código
  1. class Color():
  2.    def ___init__(self, valor, multiplicador, tolerancia):
  3.        self.valor = valor
  4.        self.multiplicador = multiplicador
  5.        self.tolerancia = tolerancia

y después instanciar varios objetos color con sus valores
Código
  1. negro = Color()
  2. negro.valor = 0
  3. negro.multiplicador = 1
  4. negro.tolerancia = None
  5. marron = Color()
  6. marron.valor = 1
  7. marron.multiplicador = 10
  8. marron.tolerancia = None



Que opináis  ?  Cual sería mejor forma ? alguna otra sugerencia  ?

Espero haberme explicado


« Última modificación: 19 Febrero 2017, 17:07 pm por PUAROT » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Clase con atributos e instancias o if, elif, elif....
« Respuesta #1 en: 19 Febrero 2017, 17:53 pm »

más allá de las clases, me gusta trabajar con diccionarios para guardar los datos tipo:
Código
  1. resistencias={"negro":{"valor":0,"multiplicador":0,"tolerancia":"None"},
  2.                     "marron":{"valor":1,"multiplicador":10,"tolerancia":1}}
  3.  
  4. def valores_color(buscado):
  5.    color= resistencias[buscado]
  6.    valor=color["valor"]
  7.    tolerancia= color["tolerancia"]
  8.    print(color)
  9.    print(valor)
  10.    print(tolerancia)
  11.  
  12. valores_color("negro")    
  13.  


En línea

PUAROT

Desconectado Desconectado

Mensajes: 86



Ver Perfil WWW
Re: Clase con atributos e instancias o if, elif, elif....
« Respuesta #2 en: 20 Febrero 2017, 11:49 am »

Pues mira yo había pensado también en listas dentro de listas, pero no se me había ocurrido diccionario dentro de diccionario.

Que ventajas tiene con respecto a lista dentro de lista  ?
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Clase con atributos e instancias o if, elif, elif....
« Respuesta #3 en: 20 Febrero 2017, 13:23 pm »

me parece más facil acceder a un valor por su clave que por su índice, o sea prefiero poner:
diccionario["negro"]
que
lista[0]
al fin y al cabo llegará a lo mismo, pero no hay que saber el lugar que ocupa
En línea

PUAROT

Desconectado Desconectado

Mensajes: 86



Ver Perfil WWW
Re: Clase con atributos e instancias o if, elif, elif....
« Respuesta #4 en: 21 Febrero 2017, 00:26 am »

Pues si, es verdad :-)

lo mismo lo hago con diccionario , pero creo que investigaré también las clases y atributos, por el hecho de poder reutilizar código en un futuro.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Compartir combobox entre varias instancias de una clase
.NET (C#, VB.NET, ASP)
Zzombi 0 2,288 Último mensaje 10 Abril 2010, 22:36 pm
por Zzombi
Mostrar los atributos de una clase en vb.net
.NET (C#, VB.NET, ASP)
Lopardo 2 4,781 Último mensaje 11 Diciembre 2010, 18:03 pm
por Lopardo
instancias en una clase
.NET (C#, VB.NET, ASP)
aixeiger 3 2,761 Último mensaje 13 Septiembre 2012, 15:24 pm
por seba123neo
Ayuda con esta pregunta (atributos y instancias)
Bases de Datos
runtuntunger 1 2,493 Último mensaje 12 Junio 2013, 02:51 am
por engel lex
ayuda con mi programa! sale error en los elif
Scripting
ReAdriel 7 4,820 Último mensaje 6 Agosto 2017, 10:30 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines