El 17/11/2012 14:11, "Quique Porta" <[email protected]> escribió:
> Para saber si una clase hereda de otra, lo puedes averiguar con issubclass > (http://docs.python.org/2/library/functions.html#issubclass). > > if issubclass(MyClase, MegaClase): > # codigo si se cumple > > Y luego para que deban reimplementar los métodos podrias hacer algo así: > > class MegaClase(objetc): > > def metodo_1(self): > raise Exception("Debes de re-definir el metodo_1.") > > def metodo_2(self): > raise Exception("Debes de re-definir el metodo_2.") > > O importando inspect > > y obteniendo el listado de los "members" > > inspect.getmembers(MyClase, predicate=inspect.ismethod) > > Te devolverá una lista. > > Lo puedes ver aquí: > http://docs.python.org/2/library/inspect.html#inspect.getmembers > > Un Saludo. > Supongo que esto valdría, pero tendría que ejecutar el código que suben los usuarios a la web.... > > El 17 de noviembre de 2012 13:57, Benito Rodríguez Arcos < > [email protected]> escribió: > >> Hola a todos. >> >> Estoy haciendo una aplicación web donde los usuarios suben un código >> python. La he integrado con pylint para chequear la syntaxis. Pero me >> gustaría chequear otras propiedades del código, aparte de ésta. >> >> Me explico, quiero que el código de los usuarios sea una clase que herede >> de otra y que los usuarios implementen una serie de métodos. Un ejemplo >> sería algo así. >> >> import MegaClase >> >> class MyClase(MegaClase): >> def megaclase_method1(self): >> print "pepe" >> >> def megaclase_method2(self): >> return 1 + 2 >> >> def myclase_method(self): >> return "dooo" >> >> ¿como prodía chequear que la clase que sube el usuario hereda de >> MegaClase e implementa una serie de métodos? >> >> Gracias. >> >> ------- >> *Benito Rodriguez Arcos* >> >> _______________________________________________ >> Python-es mailing list >> [email protected] >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ >> >> > > _______________________________________________ > Python-es mailing list > [email protected] > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > >
_______________________________________________ Python-es mailing list [email protected] http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/
