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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  diccionario como variable de clase [Python]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: diccionario como variable de clase [Python]  (Leído 4,635 veces)
Phillip357

Desconectado Desconectado

Mensajes: 4


Ver Perfil
diccionario como variable de clase [Python]
« en: 18 Noviembre 2016, 12:03 pm »

Buenas, me gustaría establecer un diccionario como variable de clase para que desde otra clase pueda ser llamado sin ningún tipo de problema, mi intención es algo como:

Código:
class Dicctionary:
    verbs
    def setVerbs(self, fileDictionary):
        print("setVerbs: ",fileDictionary)
        Dicctionary.verbs = {fileDictionary[i]: fileDictionary[i+1] for i in range(0, len(fileDictionary), 2)}
        Dicctionary.getKeys(self,verbs)

¿Es posible hacer algo asi?


En línea

Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: diccionario como variable de clase [Python]
« Respuesta #1 en: 18 Noviembre 2016, 12:22 pm »

Sí es posible, y el código está casi bien, solo tienes que inicializar bien la variable verbs:

Código
  1. class Dicctionary:
  2.    verbs = dict()
  3.    def setVerbs(self, fileDictionary):
  4.        print("setVerbs: ",fileDictionary)
  5.        self.verbs = {fileDictionary[i]: fileDictionary[i+1] for i in range(0, len(fileDictionary), 2)}
  6.        self.getKeys(self,verbs)

Saludos!


« Última modificación: 18 Noviembre 2016, 12:23 pm por Once » En línea

Phillip357

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: diccionario como variable de clase [Python]
« Respuesta #2 en: 18 Noviembre 2016, 12:59 pm »

Gracias Once, me has resuleto el problema!

Aprovecho el mismo post (para no llenar el foro) para preguntar otra cosa diferente:
Tengo un método dentro de otra clase (Dictionaries) con un método (verbsSet) y me gustaría llamarlo de forma dinámica, es decir, hacer algo parecido a esto:

fileToRead = 'verbs'
calling = fileToRead+"Set()"
Dicctionary.calling
En línea

Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: diccionario como variable de clase [Python]
« Respuesta #3 en: 18 Noviembre 2016, 22:19 pm »

Hola, puedes hacerlo, solo tienes que hacer uso de la función getattr. Te dejo un pequeño ejemplo de cómo se usa:

Código
  1. # -*- coding: utf-8 -*-
  2.  
  3. class Hola(object):
  4.  
  5.    def unMetodo(self):
  6.        print("Hola, soy un metodo")
  7.  
  8. a = "un"
  9. b = "Metodo"
  10.  
  11. instancia = Hola()
  12. metodo = getattr(instancia, a + b)
  13. metodo()

Saludos!
En línea

eduardoemen

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: diccionario como variable de clase [Python]
« Respuesta #4 en: 19 Noviembre 2016, 15:50 pm »

# Open the input text file.
f = open('problem001.txt', 'r')
 
myDictionary = {}
 
# First line contains the string Text
genome = f.readline().rstrip('\n')
# Second line contains k
k = int(f.readline().rstrip('\n'))
 
f.close()
         
# Number of characters in the string
numChars = len(genome)
 
# Step through the string 1 char at a time and substring out each k characters
for i in range (0, numChars - k + 1):
    kmer = genome[i:i+k]
    if kmer in myDictionary:
        myDictionary[kmer] += 1
    else:
        myDictionary[kmer] = 1
 
maxValue = 0
answer = ''
# Sort the keys in the dictionary
for w in sorted(myDictionary, key=myDictionary.get, reverse=True):
    if myDictionary[w] >= maxValue:
        maxValue = myDictionary[w]
        answer += w + ' '
        print w, myDictionary[w]
 
print 'answer'
print answer


Hola a todos un saludo, perdonad si este tema tan de principiante lo haya colado por aquí, alguien podría ayudarme por favor que no logro encontrar qué significa :

 kmer = genome[i:i+k] 


esos dos puntos entre i e i y dentrp de un corchete


gracias de antemano si alguien puede ayudarme con eso

un saludo
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: diccionario como variable de clase [Python]
« Respuesta #5 en: 19 Noviembre 2016, 19:55 pm »

Tendrías que haber abierto un nuevo post con esta pregunta.
Ahora, basicamente está haciendo un slicing(cortando) una cadena por ejemplo:
cadena= "hola mundo"
cortar = cadena[1:3]
==> ol, ya que el primer valor es el lugar de inicio del corte y el segundo el lugar de final(no incluido)
En línea

Phillip357

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: diccionario como variable de clase [Python]
« Respuesta #6 en: 23 Noviembre 2016, 09:38 am »

Hola, puedes hacerlo, solo tienes que hacer uso de la función getattr. Te dejo un pequeño ejemplo de cómo se usa:

Código
  1. # -*- coding: utf-8 -*-
  2.  
  3. class Hola(object):
  4.  
  5.    def unMetodo(self):
  6.        print("Hola, soy un metodo")
  7.  
  8. a = "un"
  9. b = "Metodo"
  10.  
  11. instancia = Hola()
  12. metodo = getattr(instancia, a + b)
  13. metodo()

Saludos!

Perfecto, eso hace exactamente lo que quería, gracias!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines