In generale, è ragionevole restituire None da un metodo __new__
se l'utente della classe sa che a volte il costruttore valuterà su Nessuno?Va bene restituire None da __new__?
La documentazione non implica che sia illegale e non vedo alcun problema immediato (dal momento che __init__
non verrà chiamato, Nessuno non è un'istanza della classe personalizzata in questione!). Ma io sono preoccupato per
- se potrebbe avere altri problemi imprevisti
- se si tratta di una buona pratica di programmazione per avere costruttori tornare Nessuno
esempio specifico:
class MyNumber(int):
def __new__(cls, value): # value is a string (usually) parsed from a file
if value == 'N.A.':
return None
return int.__new__(cls, value)
o meglio, funziona. Tentando di fare quasi nulla di interessante con il risultato, non lo farò. Ma probabilmente è parte del punto. – aaronasterling