"Cuando uno dice" todo es un objeto "(como en Python), ¿de verdad quiere decir que" todo es de primera clase "?
Sí.
Todo en Python es un objeto adecuado. Incluso cosas que son "tipos primitivos" en otros idiomas.
Encuentras que un objeto como 2
en realidad tiene una interfaz bastante rica y sofisticada.
>>> dir(2)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__str__', '__sub__', '__truediv__', '__xor__']
Porque todo es un objeto de primera clase en Python, hay relativamente pocos casos especiales oscuros.
En Java, por ejemplo, hay tipos primitivos (int, bool, double, char) que no son objetos propios.Es por eso que Java tiene que introducir Integer, Boolean, Double y Character como tipos de primera clase. Esto puede ser difícil de enseñar a los principiantes, no es obvio por qué tanto un tipo primitivo como una clase tienen que existir uno al lado del otro.
También significa que la clase de un objeto es, en sí misma, un objeto. Esto es diferente de C++, donde las clases no siempre tienen una existencia distinta en el tiempo de ejecución.
El tipo de 2
es el objeto , que tiene métodos, atributos y un tipo.
>>> type(2)
<type 'int'>
El tipo de un tipo incorporado como int
es el objeto type 'type'
. Esto tiene métodos y atributos, también.
>>> type(type(2))
<type 'type'>
¿Sería posible migrar a esta pregunta programmers.SE? ¿O sería un inadaptado allí también? Creo que esta pregunta es buena. Simplemente no puedo decir qué foro sería el mejor. –
Votaron para reabrir ... lamentablemente esto realmente parece haber sido cerrado por personas que no programan, claramente está en el tema:/ – djechlin