<div dir="ltr"><div><div><div>Anche se Python ti consente di farlo... Il fatto che tu debba fare una cosa così "insolita" dovrebbe far suonare un campanellino.<br><br></div>Potresti implementare un "factory" (cerca factory method su google) che, ti restituisce l'istanza della classe o None, se necessario.<br>

<br>Ancora meglio la tua potrebbe essere una situazione in cui puoi implementare un NullObject Design Pattern. Anche qui cerca su Google per chiarimenti.<br><br></div>Ciao :-)<br><br></div>L<br></div><div class="gmail_extra">

<br><br><div class="gmail_quote">Il giorno 25 giugno 2013 09:41, Marco Giusti <span dir="ltr"><<a href="mailto:marco.giusti@gmail.com" target="_blank">marco.giusti@gmail.com</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5">On Mon, Jun 24, 2013 at 09:01:00PM +0200, Gollum1 wrote:<br>
> Il 24 giugno 2013 18:51, Marco Giusti <<a href="mailto:marco.giusti@gmail.com">marco.giusti@gmail.com</a>> ha scritto:<br>
> > On Mon, Jun 24, 2013 at 06:30:52PM +0200, Gollum1 wrote:<br>
> >> Ho provato a guardare un po' di documentazione, oltre a quelle<br>
> >> espresse qui in lista, anche in altri luoghi gli sviluppatori non sono<br>
> >> troppo propensi a questa soluzione...<br>
> >><br>
> >> probabilmente la soluzione del raise è quella sintaticamente più corretta...<br>
> >><br>
> >> ora però devo capire come funziona la cosa, alcuni script fatti per il<br>
> >> 2.x con il 3.x non funzionano correttamente... e la documentazione per<br>
> >> la 3.x non riesco a capirla...<br>
> >><br>
> >> leggendo la documentazione mi pare di capire che il numero e il<br>
> >> messaggio dell'eccezione viene registrata in args, quindi il fatto che<br>
> >> io abbia usato args come parametro di chiamata della classe, potrebbe<br>
> >> essere un errore... devo quindi considerare args come una parola<br>
> >> chiave del linguaggio e non usarla per altre cose?<br>
> ><br>
> > no, args non è una parola chiave del linguaggio e puoi usarla nei limiti<br>
> > di correttezza come nome di variabile. se posti un esempio di codice<br>
> > forse capiamo meglio e possiamo aiutarti meglio.<br>
><br>
> Oddio... o sto rincoglionendo ora... o ero strafatto alcuni giorni fa...<br>
><br>
> stavo cercando la documentazione tra Python2 e Python3... ed ero<br>
> arrivato al punto che lo script falliva nella forma in cui era scritto<br>
> l'exception quando dovevo creare una directory...<br>
><br>
> e quindi ho dovuto modificare il blocco try - exception...<br>
><br>
> il bello è che ora mi sono messo a ricercare i vari documenti che<br>
> avevo letto al tempo (qualche giorno fa)... e non ne trovo uno...<br>
><br>
> c'era un documento in <a href="http://docs.python.org/3/" target="_blank">http://docs.python.org/3/</a> che diceva<br>
> esplicitamente che l'exception metteva il codice di errore dell'errore<br>
> e il relativo messaggio come primi due parametri, ed opzionalmente (in<br>
> relazione a quale era l'errore sollevato) poteva esserci un terzo<br>
> parametro (il nome del file)... e tutti questi venivano restituiti<br>
> nella variabile args... da qui il fatto che io pensassi che args fosse<br>
> diventata una parola chiave...<br>
<br>
</div></div>Quando parli di keyword parli di qualcosa di specifico. Tanto per essere<br>
chiari:<br>
<br>
        >>> as = "ciao"<br>
          File "<stdin>", line 1<br>
                as = "ciao"<br>
                 ^<br>
        SyntaxError: invalid syntax<br>
        >>> args = "ciao"<br>
        >>><br>
<br>
ma hai in qualche maniera ragione quando dici che gli argomenti passati<br>
al costruttore di una eccezione vengono salvati in args:<br>
<br>
        >>> try:<br>
        ...  raise RuntimeError("non", "hai", "detto", "la", "parola", "magica")<br>
        ... except Exception as e:<br>
        ...  print(*e.args)<br>
        ...<br>
        non hai detto la parola magica<br>
        >>><br>
<br>
Args è un attributo dell'eccezione e niente di vieta di usare comunque<br>
una variabile di nome args. Il documento a cui fai riferimento<br>
probabilmente è questo[1].<br>
<br>
[1] <a href="http://docs.python.org/3/library/exceptions.html#BaseException.args" target="_blank">http://docs.python.org/3/library/exceptions.html#BaseException.args</a><br>
<br>
ciao<br>
<div class="HOEnZb"><div class="h5">m.<br>
_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
</div></div></blockquote></div><br></div>