None
in Python è un oggetto.Perché len (Nessuno) non restituisce 0?
>>> isinstance(None, object)
True
E, come tale, può utilizzare funzioni come __str __()
>>> str(None)
'None'
Ma perché non fa fare la stessa cosa per __len __()?
>>> len(None)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
len(None)
TypeError: object of type 'NoneType' has no len()
sembra che sarebbe Pythonic stesso modo che if list
è accettabile anche se la variabile è None
e non solo un elenco vuoto.
Esistono casi che potrebbero rendere l'uso di len(None)
un problema?
Perché 'None' non ha un' __len__'; non è ['Dimensiona'] (https://docs.python.org/2/library/collections.html#collections.Sized). – jonrsharpe
@jonrsharpe Ma potrebbe avere solo una funzione aggiunta che restituisce 0 non importa cosa. – SuperBiasedMan
potrebbe ma non avrebbe molto senso. Perché un oggetto dovrebbe avere una lunghezza a meno che non si tratti di una collezione di oggetti? –