Sınıflar hakkında konuşurken, evrensel olarak kabul edilmiş bir
terminolojinin olmayışından dolayı arasıra Smalltalk ve C++ terimlerini
kullanacağım. (Aslında, nesne yönelimi açısından Python'a daha çok benzeyen
Modula-3 dili terimlerini kullanırdım; fakat bu dilden haberdar olan
okuyucuların azınlıkta olduğunu sanıyorum.)
Ayrıca nesne yönelim kavramını bilenleri bir terminoloji tuzağına karşı
uyarmalıyım: "Nesne" sözcüğü, Python'da "bir sınıfın gerçeklenmesi"
anlamına gelmez.
Smalltalk'da olmayan ancak C++ ve Modula-3'dekine
benzer şekilde Python'daki veri türlerinin hepsi birer sınıf değildir:
tamsayılar ve listeler gibi yerleşik veri türleri ile dosyalar sınıf
değildirler. Yine de tüm Python veri türleri için ortak bir kavramı
paylaşmaları adına nesnelerdir demek yanlış olmaz.
Nesneler tek tek ve çoklu isimlerle (çoklu etki alanları içinde), aynı
nesneye bağlı olabilir. Bu diğer dillerde kod isimlendirme (aliasing)
olarak bilinir. Bu genellikle Python'da ilk bakışta anlaşılmaz ve
değişmez temel türler (sayılar, dizgeler, demetler) ile çalışırken
yoksayılabilir. Yine de kod isimlendirme, listeler sözlükler gibi
değiştirilebilen nesneler ve program dışındaki öğeler (dosyalar,
pencereler, vs) için kullanılan bazı türlerinde katılımıyla Python kodunun
kavramsallaştırılmasında (kasıtlı!) bir etkiye sahiptir. Bazı yönleriyle
kod isimlendirme göstergelere benzer bir davranış sergilediğinden
genellikle, program yararına kullanılmıştır. Örneğin, sadece göstergesi
aktarıldığından bir nesnenin aktarılması kolaydır; eğer bir işlev,
bir argüman olarak aktarılan bir nesneyi değiştirirse, işlevi çağıran
değişikliği görecektir - bu, Pascal'daki gibi iki farklı argüman aktarma
gereksinimini ortadan kaldırır.