Tipe data yang kita pelajari sebelumnya adalah kelas, dan kita bisa menggunakan banyak metode di kelas.
Definisi kelas menggunakan kata kunci class , dan struktur sintaksisnya adalah sebagai berikut:
className:''''Dokumen Kelas'''konten
Nama adalah nama kelas yang ingin kita buat, perlu diketahui bahwa kita usahakan menggunakan huruf kapital saat menggunakannya.
Dokumentasi kelas adalah informasi yang ditulis untuk membantu kita memahami kelas ini.
Konten adalah isi kelas di dalam kelas, termasuk variabel, metode, atribut, dll. Jika kita tidak perlu menambahkan konten sementara saat mendefinisikan kelas, kita dapat menggunakan pernyataan pass untuk bertindak sebagai pernyataan pengganti.
Mari kita definisikan sebuah kelas:
classSchool: #Dengan cara ini kita mendefinisikan sebuah kelas bernama School'''Define a school class'''passschool=School()#Dengan cara ini kita menyebut kelas ini print(type(school))#Pass output Lihatlah outputnya ketik cetak (sekolah)
Outputnya adalah:
<class'__main__.School'><__main__.Schoolobjectat0x03372DD8>
Dari hasilnya, kita dapat melihat bahwa sekolah adalah sebuah kelas, dan dari baris kedua, kita dapat melihat bahwa sekolah adalah turunan dari kelas Sekolah.
Saat membuat kelas, sering kali dibuat metode __init__(). Metode ini merupakan metode konstruksi, yaitu metode ini akan digunakan setiap kali kelas dipanggil, dan parameter juga diteruskan dalam metode ini.
Metode ini harus berisi parameter self, yang juga harus menjadi parameter pertama. Parameter ini menunjuk ke instance itu sendiri, dan dapat mengakses properti dan metode yang ada di kelas ini.
Lihatlah contoh berikut:
classSchool: #Dengan cara ini kita mendefinisikan sebuah kelas. Jika kita ingin memanggil kelas ini'''define a school class''' def__init__(self):print('Ini adalah metode __init()__')def__judge__( self) :print('Nilai apakah metode ini disebut')school=School()
Outputnya adalah:
Berikut adalah metode __init()__
Dari outputnya, kita dapat melihat bahwa selama kelas ini dipanggil, metode __init__ akan dipanggil secara otomatis, tetapi metode __judge__ berikut tidak dipanggil.
Kita juga bisa menggunakan loop untuk memverifikasi apakah metode init akan digunakan setiap kali kelas ini dipanggil:
Lihatlah kode di bawah ini:
classSchool:'''Definisikan sekolah class'''count=0def__init__(self):School.count+=1print('Ini adalah %d penggunaan metode __init()__'%School.count)foriinrange(5 ): Sekolah()
Outputnya adalah:
Berikut adalah penggunaan pertama dari metode __init()__. Berikut adalah penggunaan kedua dari metode __init()__. Berikut adalah penggunaan ketiga dari metode __init()__ metode Ini adalah penggunaan metode __init()__ yang ke-5
Kita dapat melihat dari output bahwa kita menggunakan metode init sebanyak 5 kali. Saat kita memanggil kelas ini untuk pertama kali, hitungannya adalah 0, kemudian metode init ditambah 1. School.count dalam metode init bertambah setiap kali. 1. Maka hitungan terluar tidak berubah. Melalui contoh ini, kita dapat mempelajari cara menggunakan init.
Saat kita mempelajari fungsi, transfer parameter ditentukan dalam nama fungsi, dan di kelas, kita dapat mentransfer parameter dengan lebih mudah melalui metode init.
Lihatlah contoh berikut:
classGetAge:def__init__(self,name,age):self.name=nameself.age=ageprint('%s’s age is %d'%(name,age))GetAge('Xiao Ming',18)
Outputnya adalah:
Usia Xiao Ming adalah 18 tahun
Perlu kita perhatikan bahwa self itu penting dan perlu ditempatkan terlebih dahulu. Kemudian ketika kita memanggil kelas ini, jumlah parameter (tidak termasuk self) yang terdapat dalam metode init harus sama dengan jumlah parameter yang kita panggil lulus.