@Proprierty con valore

di il
3 risposte

@Proprierty con valore

Ciao 

Ho scoperto e sto utilizzando con soddisfazione questo <decoratore>

    @property
    def frame_capture(self, value) -> cv2:
        """
        
        :return: il frame con posizione pari a value catturato dal video
        """
        return self.video_caputure.set(cv2.CAP_PROP_POS_FRAMES, value)

Mi sono imbattuto nel caso riportato sopra

Probabilmente non è adatto in questo caso , ma come posso settare un valore e poi ritornare il risultato

Devo per forza creare un secondo metodo generico e poi leggere il suo risulto con un altro metodo decorato ?

Quello che ho scritto non rispetta la “firma” del metodo nel senso che non dovrei inserire quel 'value' tra parentesi

3 Risposte

  • Re: @Proprierty con valore

    Non ho capito bene la problematica, ad ogni modo ti basta una ricerca per ottenere una spiegazione dettagliata dell'uso di questo decorator.

    Leggi ad esempio questo articolo più che esaustivo.

  • Re: @Proprierty con valore

    Volevo capire come nel caso di @property ritornare un valore modificato  in base ad un altro valore passato nella funzione (value).

    Come vedi in quella funzione value determina quale frame catturare e in base a quello volevo ritornare il risultato

    Ma la domanda non ha alcun senso in quanto andrebbe al limite prima settato con @property.setter e poi letto successivamente

    property è fantastica perchè mi permette di richiamare valori infischiandome di come li ho ottenuti E della firma del metodo

    Almeno questo è quello che ho capito

  • Re: @Proprierty con valore

    14/08/2023 - Federico2839 ha scritto:


    Volevo capire come nel caso di @property ritornare un valore modificato  in base ad un altro valore passato nella funzione (value).

    Le funzioni che hai relative alla property sono due: un getter e un setter, ossia una funzione che restituisce un valore, un'altra che lo imposta.

    Se hai una funzione che deve acquisire un valore per restituirlo modificato, a meno che questo non possa essere letto dalla proprietà stessa, non puoi restituirlo dal setter.

    14/08/2023 - Federico2839 ha scritto:


    property è fantastica perchè mi permette di richiamare valori infischiandome di come li ho ottenuti E della firma del metodo

    Le proprietà generamente sono identificatori che sembrano in tutto e per tutto semplici campi dell'oggetto, ossia variabili che appartengono all'istanza e ne definiscono lo stato, con la differenza che il loro valore non viene letto/scritto direttamente dal/nel campo, ma tramite l'intercessione dei due metodi sopra menzionati, che hanno rispettivamente il compito di restituire il valore e di impostarlo.

    Il vantaggio è che sembra di leggere o impostare quello che è un semplice campo, usando una normalissima sintassi di assegnazione, ma eventuali valori in uscita possono essere calcolati, da un lato, oppure validati e trasformati in ingresso.

    E' anche possibile eliminare il setter per realizzare una proprietà di sola lettura.

Devi accedere o registrarti per scrivere nel forum
3 risposte