https://foro.gambas-es.org/viewtopic.php?f=16&t=6531&p=39328#p39328
-----------------------------------
Shell
Friday, 21 July 2017, 09:38

[Python] Decoradores
-----------------------------------
Buenos días!.

Esta pregunta va para los pythonistas de la comunidad.  Si es que existen realmente. :roll:
Para mi que somos dos.  

Volviendo al ejemplo de parámetros por defecto. Estoy usando decoradores.
Pero me encuentro que no sé como crear un parámetro por defecto si uso decoradores.
( Si no quiero usar **kwargs ).

[code linenumbers=false syntax=python]
#!/usr/bin/env python3

# Parametros opcionales

class Figura2D:

    @property
    def ancho(self):
        return self.ancho
    
    @ancho.setter
    def ancho(self, anc ):
        self.ancho = anc
    
    @property
    def alto(self):
        return self.alto
    
    @alto.setter
    def alto(self, alt):
        self.alto = alt


def main():
    unafigura = Figura2D
    unafigura.ancho  = 10
    unafigura.alto = 20
    
    print (unafigura.ancho)
    print (unafigura.alto)


if __name__=='__main__': main()
[/code]

Si me diera por hacer algo como esto:

[code linenumbers=false syntax=python]
def __init__(self, ancho = 10, alto = 30):
        self.ancho = ancho
        self.alto = alto
....
def main():
    unafigura = Figura2D()
    # unafigura.ancho  = 10
    # unafigura.alto = 20
    
    print (unafigura.ancho)
    print (unafigura.alto)
[/code]

Se crea un problema de recursividad infinita :!:   :grin: 
Me extraña que no se pueda usar parámetros opcionales con decoradores.

Saludos


