"Kişi" her şey bir nesne "dediğinde (Python'da olduğu gibi), gerçekten de" her şey birinci sınıf "anlamına mı geliyor?"
Evet.
Python'daki her şey uygun bir nesnedir. Diğer dillerde "ilkel tip" olan şeyler bile.
Gibi bir nesnenin 2
aslında oldukça zengin ve sofistike bir arayüze sahip olduğunu görüyorsunuz.
>>> 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__']
Her şey Python'da birinci sınıf bir nesne olduğundan, göreceli olarak az sayıda özel durum vardır.
Örneğin Java'da, uygun nesne olmayan ilkel türler (int, bool, double, char) vardır. Bu nedenle Java'nın birinci sınıf tür olarak Integer, Boolean, Double ve Character'i tanıtması gerekir. Bu yeni başlayanlara öğretmek zor olabilir - hem ilkel bir tipin hem de bir sınıfın neden yan yana var olması gerektiği açık değildir.
Ayrıca bir nesnenin sınıfının - kendisinin - bir nesne olduğu anlamına gelir. Bu, sınıfların çalışma zamanında her zaman farklı bir varlığı olmayan C ++ 'dan farklıdır.
Türü 2
olan type 'int'
yöntemler, özellikler ve bir tür olduğu nesne.
>>> type(2)
<class 'int'>
Tipi yerleşik bir türü gibi int
olan type 'type'
nesne. Bunun da yöntemleri ve nitelikleri vardır.
>>> type(type(2))
<class 'type'>