Objek kelas mendukung dua jenis operasi: referensi atribut dan instantiasi
Referensi atribut menggunakan sintaksis standar yang digunakan untuk semua referensi atribut dengan Python: obj.name. Nama atribut yang valid adalah semua nama yang ada di namespace kelas ketika objek kelas dibuat. Jadi, jika definisi kelas tampak seperti ini:
class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'
kemudian MyClass.i
dan MyClass.f
adalah referensi atribut yang valid, masing-masing mengembalikan integer dan fungsi objek. Atribut kelas juga dapat ditetapkan, sehingga Anda dapat mengubah nilai MyClass.i
berdasarkan penugasan. __doc__
juga merupakan atribut yang valid, mengembalikan docstring milik kelas: "Kelas contoh sederhana".
Instansiasi kelas menggunakan notasi fungsi. Hanya berpura-pura bahwa objek kelas adalah fungsi tanpa parameter yang mengembalikan instance baru dari kelas. Sebagai contoh:
x = MyClass()
The Instansiasi Operasi ( “memanggil” objek kelas) menciptakan objek kosong. Banyak kelas suka membuat objek dengan instance yang disesuaikan dengan kondisi awal tertentu. Oleh karena itu kelas dapat mendefinisikan metode khusus yang dinamai __init__()
, seperti ini:
def __init__(self):
self.data = []
Ketika sebuah kelas mendefinisikan sebuah __init__()
metode, instantiasi kelas secara otomatis memanggil __init__()
instance kelas yang baru dibuat. Jadi dalam contoh ini, contoh baru yang diinisialisasi dapat diperoleh dengan:
x = MyClass()
Tentu saja, __init__()
metode ini mungkin memiliki argumen untuk fleksibilitas yang lebih besar. Dalam hal itu, argumen yang diberikan kepada operator instantiasi kelas diteruskan ke __init__()
. Sebagai contoh,
class Complex:
def __init__(self, realpart, imagpart):
self.r = realpart
self.i = imagpart
x = Complex(3.0, -4.5)
x.r, x.i
Diambil dari dokumentasi resmi yang paling membantu saya pada akhirnya.
Ini contoh saya
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 :)")
Saat Anda membuat instance dari tagihan kelas:
purchase = Bill(5,6,7)
Anda mendapatkan:
> Buy 5 apples 6 figs and 7 dates. Total fruitty bill is 18 pieces of
> fruit :)
x = 'Hello'
luar tetapi di dalam kelas? apakah itu seperti java di mana itu sama, atau apakah itu menjadi seperti variabel statis yang hanya diinisialisasi sekali?