Sınıf nesneleri iki tür işlemi destekler: öznitelik referansları ve örnekleme
Öznitelik referansları , Python: obj.name içindeki tüm öznitelik referansları için kullanılan standart sözdizimini kullanır. Geçerli öznitelik adları, sınıf nesnesi oluşturulduğunda sınıfın ad alanında bulunan tüm adlardır. Yani, sınıf tanımı şuna benziyorsa:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
sonra MyClass.i
ve MyClass.f
sırasıyla bir tamsayı ve bir işlev nesnesi döndüren geçerli öznitelik referanslarıdır. Sınıf öznitelikleri de atanabilir, böylece değerini MyClass.i
atamaya göre değiştirebilirsiniz . __doc__
ayrıca sınıfa ait öğretiyi döndüren geçerli bir özelliktir: "Basit bir örnek sınıf".
Sınıf örneği işlev gösterimini kullanır. Sınıf nesnesinin, sınıfın yeni bir örneğini döndüren parametresiz bir işlev olduğunu varsayalım. Örneğin:
x = MyClass()
İnstantiation (Bir sınıf nesnesi “çağıran”) işlemi boş bir nesne oluşturur. Birçok sınıf, belirli bir başlangıç durumuna göre özelleştirilmiş örnekleri olan nesneler oluşturmayı sever. Bu nedenle, bir sınıf şöyle özel bir yöntem tanımlayabilir __init__()
:
def __init__(self):
self.data = []
Bir sınıf bir __init__()
yöntem tanımladığında , sınıf örneği __init__()
yeni oluşturulan sınıf örneği için otomatik olarak çağrılır . Bu örnekte, yeni, başlatılmış bir örnek şu yollarla elde edilebilir:
x = MyClass()
Tabii ki, __init__()
yöntem daha fazla esneklik için argümanlara sahip olabilir. Bu durumda, sınıf örnekleme işlecine verilen argümanlar iletilir __init__()
. Örneğin,
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
x.r, x.i
Sonunda bana en çok yardımcı olan resmi belgelerden alındı .
İşte benim örneğim
class Bill():
def __init__(self,apples,figs,dates):
self.apples = apples
self.figs = figs
self.dates = dates
self.bill = apples + figs + dates
print ("Buy",self.apples,"apples", self.figs,"figs
and",self.dates,"dates.
Total fruitty bill is",self.bill," pieces of fruit :)")
Bill sınıfının bir örneğini oluşturduğunuzda:
purchase = Bill(5,6,7)
Şunları elde edersiniz:
> Buy 5 apples 6 figs and 7 dates. Total fruitty bill is 18 pieces of
> fruit :)
x = 'Hello'
dışında ama sınıfın içine koyarsanız ne olur ? aynı java gibi mi, yoksa sadece bir kez başlatılan statik bir değişken gibi mi?