Perché ogni valore è un oggetto in python? [chiuso]

-2

So di scrivere programmi (usando C) che hanno:

  1. Valori dei dati, che sono manipolati. Ad esempio: numero intero, valori float ecc.

  2. funzioni (regole), tramite cui vengono manipolati i valori dei dati.

object è un'astrazione coerente di rappresentare qualcosa che racchiuda le sue proprietà (valori dei dati) + interazioni (funzioni) & processi (funzioni) che possono manipolare quei valori di dati.

Come principiante di Python, mi piacerebbe sapere perché i valori dei dati (come interi e float) e i processi (come le funzioni) sono considerati oggetti?

Dal blog di Guido come indicato di seguito, potrei trovare alcune informazioni pertinenti ma non risponde perché?

The internal implementation of Python made this simple to do. All of Python's objects were based on a common C data structure that was used everywhere in the interpreter. Variables, lists, functions, and everything else just used variations of this one data structure---it just didn't matter if the structure happened to represent a simple object such as an integer or something more complicated such as a class.

In che modo un processo di calcolo (funzione) può essere un oggetto come in qualsiasi progettazione linguistica?

    
posta overexchange 20.02.2015 - 10:30
fonte

1 risposta

5

Se hai un linguaggio orientato agli oggetti, dovrebbe essere normale e si aspetta che ogni valore sia un oggetto; hai bisogno di una giustificazione speciale se è non il caso.

Aggiornamento: sembra che tu sia incerto sul significato della dichiarazione, probabilmente a causa della mancanza di contrasto.

Quindi permettimi di fornire il contrasto: in altre lingue, anche quelle che sono considerate lingue OO, alcuni valori sono oggetti non . Ad esempio, Java ha i cosiddetti "tipi primitivi" come int , char e double . Questi non sono oggetti, non puoi chiamare metodi su di essi e non puoi assegnarli a una variabile di tipo Object . Hanno bisogno di trattamenti speciali in molti posti, il che è spesso un po 'fastidioso.

I progettisti di Java hanno scelto di farlo principalmente per motivi di prestazioni, poiché gli oggetti in genere hanno un certo overhead.

    
risposta data 20.02.2015 - 10:39
fonte

Leggi altre domande sui tag