Modül dersleri (1/4)
Sınıflar ve örnekler
sınıf, verilere (özniteliklere) sahip nesneler oluşturmaya yönelik bir plandır ve davranış (yöntemler). Örnek, şunlardan oluşturulan somut bir nesnedir: sınıf.
Minimal sözdizimi
class Cane:
def __init__(self, nome, eta):
self.nome = nome
self.eta = eta
def abbaia(self):
return f"{self.nome} dice WOOF!"
# creazione di istanze
fido = Cane("Fido", 3)
luna = Cane("Luna", 5)
fido.nome # 'Fido'
fido.abbaia() # 'Fido dice WOOF!'__init__: "yapıcı"
Bir dosya oluşturduğunuzda __init__ yöntemi otomatik olarak çağrılır.
örnek (Cane("Fido", 3)). Nitelikleri başlatmak için kullanılır.
Teknik olarak bir yapıcı değildir (nesne zaten
__new__), ancak başlangıç durumunu ayarladığınız yerdir.
self: ilk parametre
self yöntemin çağrıldığı örneğin referansıdır. Bu bir
kural (anahtar kelime değil) ve örneğin her zaman ilk parametresidir
yöntemler.
fido.abbaia()
# equivalente a Cane.abbaia(fido)
# Python passa fido come self automaticamenteÖrnek ve sınıf nitelikleri
class Cane:
specie = "Canis familiaris" # attributo di CLASSE (condiviso)
def __init__(self, nome):
self.nome = nome # attributo di ISTANZA (per ognuno)
fido = Cane("Fido")
luna = Cane("Luna")
fido.nome # 'Fido' (istanza)
luna.nome # 'Luna' (istanza)
fido.specie # 'Canis familiaris' (cercato sulla classe)
Cane.specie # 'Canis familiaris'Çoklu yöntemler ve durum
class Contatore:
def __init__(self, inizio=0):
self.valore = inizio
def incrementa(self, di=1):
self.valore += di
def reset(self):
self.valore = 0
c = Contatore()
c.incrementa()
c.incrementa(di=5)
c.valore # 6
c.reset()
c.valore # 0Sıra sende
Nitelikleri saklayan __init__(self, x, y) ile bir 'Nokta' sınıfı tanımlayın. X^2 + y^2'nin karekökünü döndüren bir "kökenden_mesafe" yöntemini ekleyin. 'p = Point(3, 4)' oluşturun ve 'p.distance_from_origin()' değerini değerlendirin.
İpucu göster
math.sqrt(self.x ** 2 + self.y ** 2)
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
'BankAccount'u __init__(self, bakiye=0) ile ve self.balance'ı değiştiren 'deposit(amount)', 'withdraw(amount)' yöntemleriyle tanımlayın. 'a = BankAccount(100)' oluşturun, 50 yatırın, 30 çekin. 'a.balance'ı değerlendirin.
İpucu göster
self.balance += yatırılan tutar.
3 denemeden sonra çözüm mevcut
Ek zorluk
Define a class `Rectangle` with a constructor `__init__(self, width, height)` to set width and height, and a method `area(self)` that returns the product of width and height. Instantiate a rectangle with width `4` and height `5` storing it in `rect`, and evaluate `rect.area()`.
İpucu göster
Alan(self) içindeki niteliklere erişmek için self kullanmayı unutmayın.
3 denemeden sonra çözüm mevcut