Bab lan Paragraf[Singidaken][Tampilake]
Ing kuliah iki, kita bakal sinau babagan kelas, konstruktor lan warisan ing python.
Konsep-konsep kasebut penting banget ing program gedhe ing ngendi macem-macem jinis kudu ditetepake.
Classes
Kelas penting ing pemrograman lan ora spesifik kanggo python. Akeh liyane basa pemrograman ndhukung pemanggih saka kelas. Kita nggunakake kelas kanggo nemtokake jinis data anyar.
Nganti saiki, kita wis sinau babagan jinis data dhasar ing Python kaya angka, senar, lan boolean. Iki minangka jinis data dhasar utawa prasaja ing Python. Kita uga wis ndeleng sawetara jinis data rumit kaya dhaptar lan kamus.
Nalika jinis iki arang banget migunani, padha ora bisa tansah digunakake kanggo model konsep Komplek. Contone, mikir babagan ide titik, utawa keranjang blanja. Kranjang blanja dudu boolean utawa dhaptar. Iku jinis data sing beda. Supaya kita bisa nggunakake kelas kanggo nemtokake jinis anyar kanggo model konsep nyata.
Saiki, ayo nemtokake jinis data anyar sing diarani titik. Jinis anyar iki bakal duwe metode kaya sing wis dicenthang sadurunge.
Iki carane sampeyan bakal nindakake:
Kita miwiti kanthi nemtokake kelas kanthi nggunakake tembung kunci "kelas" lan sawise iku menehi jeneng kelas.
class Point
Saiki, deleng konvensi jeneng sing dakgunakake ing kene. Aku wis huruf kapital pisanan ing kene, iki sing diarani konvensi penamaan pascal. Konvensi iki beda karo sing digunakake kanggo menehi jeneng variabel lan fungsi sing tansah nggunakake huruf cilik lan misahake pirang-pirang tembung nggunakake garis ngisor. Nanging nalika menehi jeneng kelas, kita ora nggunakake garis ngisor kanggo misahake pirang-pirang tembung, nanging nggunakake huruf kapital saben tembung.
Sawise nemtokake kelas kita, titik loro digunakake sing tegese saiki blok ditetepake.
class Point:
def move (self):
Ing blok iki, kita bisa nemtokake kabeh fungsi utawa cara sing dadi TCTerms. Contone, kita bisa nemtokake fungsi sing disebut "pindhah" kanggo mindhah titik. Elinga yen sanalika kita ngetik kurung mbukak, PyCharm otomatis nambah "self" kene. Iki minangka tembung kunci khusus lan supaya aku bali menyang iki sakcepete. Ayo print "move" ing terminal.
print("move")
Ayo nemtokake cara liyane kaya "gambar" lan dicithak ing terminal.
def draw(self):
print("draw")
Kita wis rampung karo definisi kelas "titik" kita. Kanthi jinis anyar iki, kita bisa nggawe obyek anyar. Kelas mung nemtokake cithak biru utawa cithakan kanggo nggawe obyek sing minangka conto nyata adhedhasar cithak biru kasebut. Kanggo nggawe obyek, kita ngetik jeneng kelas kita banjur nyebataken minangka fungsi. Iki nggawe obyek anyar lan banjur bali. Banjur kita bisa nyimpen obyek kasebut ing variabel. Ayo kula nuduhake sampeyan:
Ing kene kita wis nemtokake "titik1" yaiku titik telung dimensi. Sampeyan bisa ndeleng sing, kita bisa print koordinat individu ing terminal.
Kita bisa nggunakake rong cara "gambar" lan "pindhah" karo titik iki.
Dadi kanggo rekap, kita nggunakake kelas kanggo nemtokake jinis anyar lan jinis iki bisa duwe cara sing kita nemtokake ing awak kelas. Kelas bisa duwe atribut sing bisa disetel ing ngendi wae ing program kita.
Konstruktor
Nganti saiki, kita wis sinau carane nggawe jinis anyar nggunakake kelas. Saiki ana masalah cilik karo implementasine iki. Kita bisa nggawe obyek titik tanpa koordinat x utawa y nggunakake kelas lan iku ora becik. Ayo kula nuduhake sampeyan.
Ayo nggawe titik lan nyetak sadurunge nyetel koordinat x. Nglakokake program kita nyebabake kesalahan atribut kaya iki:
Tegese obyek titik ora nduweni atribut sing diarani x. Saiki masalahe yaiku bisa duwe obyek titik tanpa koordinat x utawa y. Iki ora masuk akal amarga saben kita ngomong babagan titik, kita kudu ngerti ing ngendi papan kasebut. Kanggo ngatasi masalah iki, kita nggunakake konstruktor. Konstruktor minangka fungsi sing diarani nalika nggawe obyek.
Mangkene carane nggunakake konstruktor. Pisanan, ayo ngliwati nilai koordinat x lan y ing program ing ndhuwur.
point = Point(10, 20)
print(point.x)
Saiki, kita kudu nambah metode khusus ing kelas iki sing diarani konstruktor. Syntaxe kaya iki:
def __init__(self, x, y):
init
cendhak kanggo initialized, lan iki fungsi utawa cara sing bakal disebut nalika obyek titik anyar digawe. X lan y ditambahake sakwise self
kanggo nambah loro paramèter ekstra.
Sawisé iku, kita kudu map x lan y menyang nilai liwati ie 10 lan 20
self.x = x
self.y = y
Kita nggunakake self
kanggo ngrujuk menyang obyek saiki lan banjur nyetel atribut x menyang argumen x sing diterusake menyang fungsi "x". Kanthi cara iki, nggunakake init
cara, kita bisa initialize obyek kita. Cara iki diarani minangka konstruktor. Ayo kita mbukak program kita.
Saiki, kita bisa ngganti koordinat x lan y mengko. Ayo nganyari x koordinat:
point = Point(10, 20)
point.x = 11
print(point.x)
Saiki, koordinat x dianyari dadi nilai 11.
ngleksanani
Iki latihan sing menarik kanggo sampeyan.
Aku pengin sampeyan nemtokake jinis anyar sing diarani wong. Objek "Wong" iki kudu duwe "name
"atribut uga"talk()
”Cara.
Iku tugas prasaja lan ora kudu njupuk luwih saka sawetara menit.
solusi
Miwiti kanthi nemtokake kelas "Wong" kaya iki:
class Person:
self.name = name
Kita bakal nemtokake konstruktor mengko. Saiki, kita bisa nggawe obyek "Wong". Ayo diarani John
john = Person("John Smith")
print(john.name)
john.talk()
Saiki, pindhah menyang bagean pisanan saka kode lan nggawe konstruktor.
def __init__(self, name):
Kode pungkasan bakal katon kaya iki:
Sampeyan uga bisa nggunakake strings format lan konsep liyane magepokan karo kelas lan konstruktor.
Pusaka
Warisan minangka konsep liyane sing ana gandhengane karo kelas sing ngidini sampeyan nggunakake kode maneh.
Coba potongan kode iki.
class Dog:
def walk(self):
print("walk")
Kita wis nggawe kelas "Asu" kanthi cara "mlaku". Ing cara iki, kita mung nyithak pesen lumaku ing terminal. Ayo dadi ngomong, ing program nyata, Ana 10 baris kode tinimbang mung siji baris kene. Ing mangsa ngarep, yen kelas liyane perlu kanggo duwe cara "mlaku", kita kudu mbaleni kabeh kode sing. Iki ora becik.
Ing pemrograman, kita duwe prinsip sing diarani DRY sing cendhak kanggo ora mbaleni dhewe. Ayo ngomong ing mangsa ngarep, kita nemokake masalah karo metode "mlaku" kita lan yen kita wis mbaleni utawa duplikat cara iki ing akeh panggonan liyane, kita kudu bali lan ndandani masalah kasebut ing saben panggonan sing wis diduplikasi iki. kode. Mulane, ing pemrograman, kita ora kudu nemtokake kaping pindho.
Ana macem-macem pendekatan kanggo ngatasi masalah iki, nanging ing kene kita bakal sinau sing luwih gampang kanggo pamula lan diarani warisan. Ing kasus iki, kita bakal nggawe kelas "mamalia" liyane lan nemtokake atribut "mlaku" ing kelas kasebut.
class Mammal:
def walk(self):
print("walk")
Sawise nemtokake kelas "Mammal" kita bisa nggunakake warisan kanggo pass atribut kaya iki:
Loro-lorone kelas asu lan kucing marisi kabeh metode kelas sing ditetepake ing kelas induk. Saiki, kita bisa nambah cara khusus kanggo asu kaya iki:
class Dog:
def bark(self):
print("bark")
Bungkus!
Iki kabeh babagan kelas, konstruktor lan nggunakake maneh kode ing kelas kanthi konsep warisan. Saiki kita wis nyedhaki pungkasan seri kita. Ing wektu iki, sampeyan kudu bisa ngasilake kode sing apik, bisa diwaca lan ringkes ing Python.
Kita bakal weruh konsep modul lan paket ing kuliah sabanjure.
Ninggalake a Reply