"Ketika seseorang mengatakan" semuanya adalah objek "(seperti dalam Python), apakah dia memang bermaksud bahwa" semuanya adalah kelas satu "?"
Iya.
Segala sesuatu di Python adalah objek yang tepat. Bahkan hal-hal yang merupakan "tipe primitif" dalam bahasa lain.
Anda menemukan bahwa objek seperti 2sebenarnya memiliki antarmuka yang cukup kaya dan canggih.
>>> 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__']
Karena semuanya adalah objek kelas satu di Python, ada beberapa kasus khusus yang relatif tidak jelas.
Di Jawa, misalnya, ada tipe primitif (int, bool, double, char) yang bukan objek yang tepat. Itu sebabnya Java harus memperkenalkan Integer, Boolean, Double, dan Character sebagai tipe kelas satu. Ini bisa sulit untuk diajarkan kepada pemula - tidak jelas mengapa tipe primitif dan kelas harus ada berdampingan.
Ini juga berarti bahwa kelas objek adalah - itu sendiri - objek. Ini berbeda dari C ++, di mana kelas tidak selalu memiliki keberadaan yang berbeda saat run-time.
Tipe 2adalah type 'int'objek, yang memiliki metode, atribut, dan tipe.
>>> type(2)
<class 'int'>
Jenis tipe bawaan intadalah type 'type'objek. Ini memiliki metode dan atribut juga.
>>> type(type(2))
<class 'type'>