Hola, Me temo que tu código no está haciendo lo que crees. Las expresiones con == evaluán la expresión, no asignan valores a variables. Te propongo el siguiente código basado en el tuyo.
import os,fnmatch class libro: def __init__(self, nombre): self.nombre=nombre def buscar(self): self.foto = False os.chdir(r'D:\Django\src\static\imagenes') for f in os.listdir(): if fnmatch.fnmatch(f,'*'+self.nombre+'*.jpg'): self.foto = f return self.foto return self.foto Si encuentra la coincidencia, asigna el valor y sale del bucle con el return inmediatamente. En todos los otros casos, devuelve el valor por defecto que es False. De todas formas, crear un atributo de clase de esta forma es un poco "meh!" ¿no? Si vas a usar ese atributo más adelante, por qué no lo creas en el __init__ y lo asignas a False ahí? Y si no vas a hacerlo, por qué crear un self.foto y no simplemente una variable que llames "foto"? Bueno, en cualquier caso el problema era que estabas retornado True o False al estar evaluando una comparación con el ==, en lugar de asignar un valor y luego retornarlo. Pablo 2016-11-21 0:42 GMT+01:00 Gonzalo V <gvm2...@gmail.com>: > Amigos > Tengo la siguiente duda. Estoy haciendo una clase para un objeto libro y > tiene 2 atributos, el primero es el nombre y el segundo una foto que está > almacenada en una carpeta en mi ordenador. > Lo que ando buscando es que ese segundo atributo (libro.foto) se llene > mediante una función que haga el trabajo de buscar el archivo y asignarlo. > Tengo lista la función pero no asigna. > ¿Cómo se hace, se puede hacer o qué estoy haciendo mal? > Desde ya, muy agradecido. > > import os,fnmatch > > class libro: > > def __init__(self, nombre): > self.nombre=nombre > > def buscar(self): > os.chdir(r'D:\Django\src\static\imagenes') > for f in os.listdir(): > if fnmatch.fnmatch(f,'*'+self.nombre+'*.jpg'): > return self.foto==f > else: > return self.foto==False > > > > > > Saludos, > Gonzalo > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es