Significato dell'attributo '__name__' in python

-1

1)

Sotto il codice Python,

>>> def f():
    return

crea un oggetto di tipo function che ha attributo __name__ con valore 'f' che sembra corretto.

Ma,

2)

Sotto la riga di codice,

>>> x = 1024

crea int type object ma non ha attributo __name__ .

3)

% espressioni dilambda in python inoltre non associa alcun nome univoco per un oggetto di tipo function .

>>> square = lambda x: x * x
>>> square.__name__
'<lambda>'
>>> summation = lambda x: x + 2
>>> summation.__name__
'<lambda>'
>>> 

Per ogni programma scritto usando il paradigma funzionale, è considerato un ambiente con collegamenti nome-oggetto in quell'ambiente.

Quindi, essendo un principiante di programmazione del paradigma funzionale, come faccio a capire il significato dell'attributo __name__ ? Perché vedo una tale incoerenza nel secondo e nel terzo caso sopra nel non mantenere l'attributo __name__ di un oggetto?

    
posta overexchange 19.02.2015 - 07:41
fonte

1 risposta

2

Quale incoerenza?

Nel primo caso, hai una funzione. Nel secondo caso, hai un'espressione lambda, ovvero una funzione che non ha nome.

Python avrebbe potuto scegliere uno di questi tre approcci:

  1. Restituzione di None ,

  2. Restituzione di una stringa arbitraria, ad esempio <lambda> ,

  3. Sollevamento di un'eccezione.

Tutte e tre le opzioni sono valide, dato che la terza risulterà in try/except anziché in if/else . Python ha scelto la seconda opzione. Perché dovresti considerare due altri più coerenti?

    
risposta data 19.02.2015 - 08:31
fonte

Leggi altre domande sui tag