Implementando un Dado
Beni
camontuyu en yahoo.es
Vie Nov 23 11:23:00 CET 2007
On Nov 23, 2007 10:29 AM, tny <a.porrua en gmail.com> wrote:
>
> El vie, 23-11-2007 a las 09:19 +0100, Beni escribió:
> > Hola me gustaria encapsular alguna funcionalidad del modulo random en
> una
> > clase para simular la tirada de un dado, sería algo así:
> ...
> > def tirada(min, max, cantidad=1, tipo=int):
> ...
> > if type(int):
> ...
> > elif type(float):
> ...
> no querrás decir type(tipo)=type(int) o algo de eso
>
Si llevas razón, mi código es:
if type(tipo) = int:
...
elif type(tipo) = float:
...
> Yo personalmente pasaría del tipo=int y haría tipo='int' o tipo=INT
> (siendo INT una constante)
>
> quedaría así
> ...
> def tirada(min, max, cantidad=1, tipo='int'):
> ...
> if tipo=='int':
> ...
> elif tipo=='float':
> ...
>
Por que utilizar la comprobación de tipos con una cadena? es más eficiente?
>
> cuando haces dN=tirada(...) estas guardando en la variable dN el
> resultado de realizar un tirada
> puedes hacerlo de dos formas, con lambda y con __getattr__
>
> Suerte.
Lo del lambda, no se exactamente como encajaría aquí.
Lo del __getattr__ me parece estupendo, que sería algo así?
def __getattr__(name):
if name == 'd4':
return Dado.tirada(1,4)
else:
error
Se puede parsear el nombre para hacerlo más automático, extraer el N del
dado... pero sería algo así?
Se puede utilizar getattr como método estatico?
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es