Sınıf nesneleri iki tür işlemi destekler: özniteliklere başvuru (attribute
reference) ve sınıfın gerçeklenmesi (instantiation).
Özniteliklere başvuru için Python'da bütün
özniteliklere erişmek için kullanılan standart sözdizim kullanılır:
nesne.isim. Kullanılabilecek öznitelik isimleri sınıf
nesnesi yaratılırken sınıfın isim alanında bulunan bütün isimlerdir.
Sınıf tanımımız aşağıdaki gibi ise:
class benimSinif:
"Basit bir sınıf örneği."
i = 12345
def f(self):
return 'Merhaba'
benimSinif.i ve benimSinif.f
bir tamsayı ve bir yöntem nesnesi geri döndüren geçerli öznitelik
başvurularıdır. Sınıf özniteliklerine atama yapmak da mümkündür.
Örneğin atama yoluyla benimSinif.i değeri
değiştirilebilir. Ayrıca, __doc__ da geçerli
bir öznitelik olup sınıfa ait belgeleme dizgesini geri döndürür:
"Basit bir sınıf örneği.".
Sınıfın gerçeklenmesi, işlev sözdizimini
kullanır. Sınıf nesnesini yeni bir sınıf gerçeklemesi geri döndüren
parametresiz bir işlevmiş gibi düşünebilirsiniz. Örneğin yukarıda
tanımladığımız sınıf için:
Yeni bir sınıf gerçeklemesidir ve sınıf x yerel
değişkenine atanarak bir nesne oluşur.
Gerçeklenme işlemi (bir sınıf nesnesini ``çağırmak'') boş bir nesne
yaratır. Pek çok sınıf nesnesinin bilinen bir ilk durumda oluşturulması
istenir. Bu yüzden bir sınıfta __init__() adlı
özel yöntem şu şekilde tanımlanabilir:
def __init__(self):
self.data = []
Bir sınıfın __init__() yöntemi tanımlanmış ise sınıf
gerçeklenmesi işlemi, yeni sınıf gerçeklemesi sırasında bu yöntemi otomatik
olarak çağırır.
Daha fazla esneklik için
__init__() yönteminin
argümanları da olabilir. Bu durumda sınıfın gerçeklenmesinde
kullanılan argümanlar
__init__() yöntemine aktarılır.
[89]
Örnek:
>>> class karmasikSayi:
... def __init__(self, gercekKsm, sanalKsm):
... self.g = gercekKsm
... self.s = sanalKsm
...
>>> x = karmasikSayi(3.0, -4.5)
>>> x.g, x.s
(3.0, -4.5)