Hayır, gerekli değil. Örneğin,
.
class A(object):
def f():
print 'foo'
Ve tabii bu şekilde, bunu kullanabilirsiniz: hatta bu şekilde bir sınıf tanımlayabilirsiniz Aslında
a = A()
a.f()
. Bir sınıfın örneklerinin genellikle devlet informtion veya veri ve sınıfın yöntemleri çeşit depolamak manipüle veya durum bilgisi veya veri ile bir şeyler yapmak için bir yol sunar çünkü
class A:
pass
Ancak __init__
tanımlayan yaygın bir uygulamadır. __init__
, bu durum bilgisini veya verilerini, sınıfın bir örneğini oluştururken başlatmamıza izin verir.
İşte tam bir örnek.
class BankAccount(object):
def __init__(self, deposit):
self.amount = deposit
def withdraw(self, amount):
self.amount -= amount
def deposit(self, amount):
self.amount += amount
def balance(self):
return self.amount
# Let me create an instance of 'BankAccount' class with the initial
# balance as $2000.
myAccount = BankAccount(2000)
# Let me check if the balance is right.
print myAccount.balance()
# Let me deposit my salary
myAccount.deposit(10000)
# Let me withdraw some money to buy dinner.
myAccount.withdraw(15)
# What's the balance left?
print myAccount.balance()
Sınıfın bir örneği, her zaman sınıfın yöntemine ilk argüman olarak iletilir. Örneğin, class A
varsa ve a.foo(x, y)
, Python
numaralı çağrıları her foo(a, x, y)
aralığını foo(a, x, y)
otomatik olarak foo(a, x, y)
aradığınızda, bir örneğiniz varsa a = A()
. (İlk argümanı not edin.) Kural olarak, bu ilk argümanı self
olarak adlandırıyoruz.
__init __ kullanımı hakkında ayrıntılı olarak açıklayabilir misiniz ??? – NOOB
ITYM 'a = A()', a = A' da çalışır ancak farklı bir şey yapar. –
Alok, Teşekkürler. Onu düzeltti. –