Telah kita bahas pada tutorial sebelumnya, class adalah entitas virtual dan dapat dilihat sebagai blueprint dari sebuah objek. Kelas muncul ketika itu dipakai. Mari kita pahami dengan sebuah contoh
Misalkan kelas adalah prototipe dari sebuah bangunan. Sebuah bangunan berisi semua detail tentang lantai, kamar, pintu, jendela, dll. kita dapat membuat bangunan sebanyak yang kita inginkan, berdasarkan detail ini. Oleh karena itu, bangunan dapat dilihat sebagai sebuah kelas, dan kita dapat membuat banyak objek dari kelas ini
Di sisi lain, objek adalah turunan dari kelas. Proses pembuatan objek bisa disebut instantiation
Di bagian tutorial ini, kita akan membahas membuat kelas dan objek dengan Python. Kami juga akan membahas bagaimana atribut kelas diakses dengan menggunakan objek
Membuat Kelas dengan Python
Dalam Python, class dapat dibuat dengan menggunakan kata kunci class, diikuti dengan nama class. Sintaks untuk membuat kelas diberikan di bawah ini
Sintaksis
Dalam Python, kita harus memperhatikan bahwa setiap kelas diasosiasikan dengan string dokumentasi yang dapat diakses dengan menggunakan. __dokter__. Kelas berisi paket pernyataan termasuk bidang, konstruktor, fungsi, dll. definisi
Perhatikan contoh berikut untuk membuat kelas Karyawan yang berisi dua bidang sebagai id Karyawan, dan nama
Kelas juga berisi fungsi display[], yang digunakan untuk menampilkan informasi Karyawan
Contoh
Di sini, self digunakan sebagai variabel referensi, yang mengacu pada objek kelas saat ini. Itu selalu argumen pertama dalam definisi fungsi. Namun, menggunakan self adalah opsional dalam pemanggilan fungsi
Parameter diri
Self-parameter mengacu pada instance kelas saat ini dan mengakses variabel kelas. Kita bisa menggunakan apa saja selain self, tetapi itu harus menjadi parameter pertama dari fungsi apa pun yang termasuk dalam kelas
Membuat Objek [instance] dengan Python
Suatu kelas perlu dibuat instance-nya jika kita ingin menggunakan atribut kelas di kelas atau metode lain. Kelas dapat dibuat dengan memanggil kelas menggunakan nama kelas
Sintaks untuk membuat instance kelas diberikan di bawah ini
Contoh berikut membuat turunan dari kelas Karyawan yang didefinisikan dalam contoh di atas
Contoh
Keluaran
Dalam kode di atas, kami telah membuat kelas Karyawan yang memiliki dua atribut bernama id dan nama dan memberikan nilai kepada mereka. Kita dapat mengamati bahwa kita telah melewatkan diri sebagai parameter dalam fungsi tampilan. Ini digunakan untuk merujuk ke atribut kelas yang sama
Kami telah membuat objek instance baru bernama emp. Dengan menggunakannya, kita dapat mengakses atribut kelas
Hapus Objek
Kita dapat menghapus properti objek atau objek itu sendiri dengan menggunakan kata kunci del. Perhatikan contoh berikut
Dalam tutorial ini, kita akan belajar cara membuat dan bekerja dengan kelas Python. Secara khusus, kita akan membahas apa itu kelas Python, mengapa kita menggunakannya, jenis kelas apa yang ada, cara mendefinisikan kelas dengan Python dan mendeklarasikan/menyesuaikan objek kelas, dan banyak hal lainnya
Apa itu Kelas di Python?
Karena Python adalah bahasa pemrograman berorientasi objek [OOP], semua yang ada di dalamnya mewakili objek. Daftar, tupel, set, kamus, fungsi, dll. adalah semua contoh objek Python. Secara umum, objek Python adalah entitas item data dan metode yang menjelaskan perilaku item tersebut
Sebaliknya, kelas Python adalah templat, atau konstruktor, yang digunakan untuk membuat objek Python. Kita dapat menganggapnya sebagai resep kuliner, di mana semua bahan dan jumlahnya, termasuk kemungkinan kisarannya, dicantumkan, dan seluruh proses memasak dijelaskan langkah demi langkah. Dalam hal ini, kita dapat membandingkan resep kue dengan kelas, dan kue yang dimasak mengikuti resep tersebut dengan objek [mis. e. , turunan dari kelas itu]. Menggunakan resep [kelas] yang sama, kita dapat membuat banyak kue [objek]. Inilah ruang lingkup pembuatan kelas dengan Python. untuk mendefinisikan elemen data dan aturan yang menetapkan bagaimana elemen ini dapat berinteraksi dan mengubah statusnya — lalu menggunakan prototipe ini untuk membuat berbagai objek [instance kelas] dengan cara yang telah ditentukan sebelumnya, alih-alih membuatnya dari awal setiap saat
Jenis Kelas di Python
Dimulai dengan Python 3, istilah kelas dan tipe untuk objek asli Python identik, artinya untuk objek apa pun
a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
8, nilai a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
9 dan
0 adalah sama. Mari kita konfirmasi inia = 5
b = 'Hello World'
c = [1, 2, 3]
for var in [a, b, c]:
print[type[var]==var.__class__]
True
True
True
Ada beberapa kelas bawaan [tipe data] di Python. integer, float, string, Boolean, list, range, tuple, set, frozenset, dictionary, dan beberapa lainnya, yang jarang digunakan
a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
Fungsi bawaan dan yang ditentukan pengguna memiliki kelas/jenisnya sendiri
def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
_
Saat kita menggunakan pustaka Python tambahan, seperti panda atau NumPy, kita bisa membuat objek dari kelas/tipe yang hanya terkait dengan pustaka tersebut
import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
Namun, manfaat sebenarnya dari kelas di Python adalah kita dapat membuatnya sendiri dan menggunakannya untuk menyelesaikan tugas tertentu. Mari kita lihat caranya
Mendefinisikan Kelas dengan Python
Untuk mendefinisikan kelas Python, gunakan kata kunci
_1 diikuti dengan nama kelas baru dan titik dua. Mari buat kelas kosong yang sangat sederhanaclass MyClass:
pass
Perhatikan konvensi penamaan Python untuk kelas. gunakan gaya case unta, di mana setiap kata dimulai dengan huruf kapital, dan kata-kata tersebut ditulis bersamaan, tanpa pemisah. Konvensi lain yang sangat direkomendasikan adalah menambahkan docstring. string pertama di dalam konstruktor kelas yang menjelaskan secara singkat untuk apa kelas itu. Mari tambahkan docstring ke kelas kita
class MyClass:
'''This is a new class'''
pass
Kode di atas membuat objek kelas baru bernama
2. Catatan tambahan yang menarik di sini adalah, karena setiap objek di Python terkait dengan beberapa kelas [tipe], kelas/tipe kelas baru kita [serta semua kelas Python lainnya, termasuk kelas bawaan] adalah tipeTrue
True
True
0True
True
True
1Mari kita kembali ke topik utama. Secara umum, saat mendefinisikan kelas baru, kami juga membuat
3 baru yang berisi semua atribut [variabel dan metode] yang terkait dengan kelas tersebut. Ada juga beberapa atribut dengan arti khusus, yang dimulai dan diakhiri dengan garis bawah ganda
4 dan terkait dengan semua kelas. Misalnya, atribut
_5 mengembalikan dokumen dari kelas tersebut, atau
6, jika tidak ada dokumen yang ditambahkanUntuk mengakses atribut kelas, gunakan operator titik [
7].True
True
True
_2Ini adalah kelas lampu lalu lintas
True
True
True
_3Fungsi
_8 yang didefinisikan di dalam kelas
9 di atas adalah contoh metode kelas, sedangkan variabel def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
0 adalah variabel kelasMendeklarasikan Objek Kelas dengan Python
Kita dapat menetapkan objek kelas ke variabel, membuat objek [instance] baru dari kelas itu. Kami menyebutnya proses instantiation. Objek kelas yang ditugaskan ke variabel adalah salinan dari kelas itu dengan nilai nyata yang membedakan objek ini dari yang lain dari kelas yang sama. Kembali ke contoh kuliner kita, ini adalah kue yang terbuat dari 370g tepung [ketika kisaran resepnya adalah 350-400] dan dengan hiasan manisan buah di atasnya, bukan cokelat.
Objek kelas memiliki properti berikut
- negara - data [variabel] dari objek
- perilaku - metode objek
- identitas - nama unik dari objek
Mari kita tetapkan objek kelas dari kelas
_9 ke variabel def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
2True
True
True
_4Ini adalah kelas lampu lalu lintas
True
True
True
_5Kami membuat instance objek baru dari kelas
_9 yang disebut def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
2 dan mengakses atributnya menggunakan nama objek [identitas]. Perhatikan bahwa kelas objek baru berbeda dari kelas kelas itu sendiri def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
5 bukan def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
6]. Selain itu, atribut def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
_7 mengembalikan nilai yang berbeda untuk instance kelas dan kelas itu sendiri. objek metode dalam kasus pertama dan objek fungsi dalam kasus kedua. Memanggil metode
8 pada objekdef my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
2 [dengan menentukan
0] memberikan "Go," yang, untuk saat ini, satu-satunya output yang mungkin dari metode kelas
9 iniHal penting lainnya yang perlu diperhatikan dalam kode di atas adalah kita menggunakan parameter
2 dalam definisi fungsi di dalam kelas. Namun, saat kami memanggil metode
_8 pada objekdef my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
2, kami tidak menambahkan argumen apa pun. Beginilah cara kerja parameter
_2. setiap kali instance kelas memanggil salah satu metodenya, objek itu sendiri diteruskan sebagai argumen pertama. Dengan kata lain,
_0 setara dengan
7. Secara lebih umum, ketika kita mendefinisikan metode kelas Python dengan beberapa parameter, membuat objek kelas ini, dan memanggil metode itu pada objek, Python mengubahnya di bawah tenda sesuai dengan skema berikut
_8 ➡️
9Oleh karena itu, setiap metode kelas Python harus memiliki parameter pertama tambahan yang mewakili objek itu sendiri, meskipun tidak memiliki parameter lain. Dianjurkan untuk menyebutnya
_2, menurut konvensi penamaan PythonMari buat kelas
_9 kita lebih bermakna dan, pada saat yang sama, perkenalkan metode khusus baruTrue
True
True
6True
True
True
7Kami menggunakan metode
import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
2 [alias import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
3] untuk menginisialisasi status objek [i. e. , untuk menetapkan semua variabel kelas pada saat pembuatan instance objek]. Dalam hal ini, kami membuat kelas Python baru
9 dengan dua metode. import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
5 untuk menginisialisasi warna lampu lalu lintas dan
8 untuk menyarankan tindakan yang sesuai berdasarkan warna lampu lalu lintasMembuat dan Menghapus Atribut Objek dengan Python
Dimungkinkan untuk menambahkan atribut baru ke objek kelas setelah instantiasinya
True
True
True
_8True
True
True
9a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
0Pada kode di atas, kita membuat atribut baru
import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
7 untuk objek import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
8 dan menugaskannya ke "red. " Karena atribut ini tidak ada dalam definisi import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
_9, saat kami mencoba memeriksanya untuk objek lain [
0], kami mendapatkan
1Kita dapat menghapus atribut apa pun dari objek kelas menggunakan pernyataan
2a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
1a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
2a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
3a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
4a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
5Variabel Kelas dan Instance
Perbedaan antara kelas dan variabel instan adalah di mana nilainya diberikan dalam definisi kelas, yang juga menentukan ruang lingkup variabel
- Variabel kelas. ditugaskan dalam deklarasi kelas tetapi di luar definisi metode apa pun [termasuk konstruktor kelas]. Mereka terkait dengan semua instance objek dari kelas itu
- Variabel instan. ditugaskan di dalam metode kelas atau definisi konstruktor. Mereka unik untuk setiap instance objek dari kelas itu
a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
6a = 5.2
b = 'Hello World'
c = [1, 2, 3]
d = False
e = range[4]
f = [1, 2, 3]
g = complex[1, -1]
for var in [a, b, c, d, e, f, g]:
print[var.__class__]
7Untuk semua instance kelas di atas, kita memiliki nilai yang sama dari variabel
3, yang merupakan variabel kelas. Variabel def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
_0 ditugaskan di dalam konstruktor kelas, dan variabel import pandas as pd
import numpy as np
s = pd.Series[{'a': 1, 'b': 2}]
df = pd.DataFrame[s]
arr = np.array[[1, 2, 3]]
print[s.__class__]
print[df.__class__]
print[arr.__class__]
7 dihitung di dalam metode kelas
8 berdasarkan nilai def my_func[]:
pass
print[my_func.__class__]
print[min.__class__]
0 untuk setiap instance kelas. Keduanya adalah variabel instanKesimpulan
Singkatnya, kita telah membahas banyak aspek dalam membuat dan menggunakan kelas Python
- Apa itu kelas Python dan kapan menggunakannya
- Berbagai jenis kelas bawaan Python
- Hubungan antara kelas istilah dan tipe untuk objek Python
- Cara mendefinisikan kelas baru dengan Python
- Konvensi penamaan python untuk kelas
- Apa itu atribut kelas dan bagaimana cara mengaksesnya
- Cara membuat instance objek kelas
- Properti dari objek kelas
- Apa parameter
_2 itu dan bagaimana cara kerjanya - Properti konstruktor kelas
- Cara mengakses, membuat, atau menghapus atribut objek kelas
- Perbedaan antara kelas dan variabel instan
Sekarang Anda memiliki toolkit lengkap untuk mulai bekerja dengan kelas-kelas di Python
Pelajari Python
Tentang Penulis
Elena Kosourova
Elena adalah ahli geologi perminyakan dan manajer komunitas di Dataquest. Anda dapat menemukannya mengobrol online dengan penggemar data dan menulis tutorial tentang topik ilmu data. Temukan dia di LinkedIn