Dina kuliah ieu, urang bakal diajar ngeunaan kelas, konstruktor sareng warisan dina python.
Konsep ieu penting pisan dina program badag dimana tipena béda anu diperlukeun pikeun dihartikeun.
kelas
Kelas penting dina program sareng aranjeunna henteu khusus pikeun python. Loba lianna programming language ngarojong pamanggih kelas. Urang ngagunakeun kelas pikeun nangtukeun tipe data anyar.
Sajauh ieu, urang parantos diajar ngeunaan jinis data dasar dina Python sapertos angka, senar, sareng boolean. Ieu mangrupikeun jinis data dasar atanapi saderhana dina Python. Kami ogé parantos ningali sababaraha jinis data rumit sapertos daptar sareng kamus.
Sanaos jinis ieu mangpaat pisan, aranjeunna henteu salawasna tiasa dianggo pikeun modél konsép anu kompleks. Contona, pikir ngeunaan gagasan titik, atawa karanjang balanja. Karanjang balanja sanés boolean atanapi daptar. Ieu jenis data béda. Janten urang tiasa nganggo kelas pikeun nangtukeun jinis énggal pikeun modél konsép anu nyata.
Ayeuna, hayu urang nangtukeun tipe data anyar disebut titik. Jinis anyar ieu bakal ngagaduhan metode sapertos anu urang pariksa sateuacanna.
Ieu kumaha anjeun bakal ngalakukeun:
Urang mimitian ku nangtukeun kelas hiji ku ngagunakeun "kelas" keyword jeung katuhu sanggeus éta kami masihan kelas urang ngaran.
class Point
Ayeuna, tingali konvénsi ngaran anu kuring dianggo di dieu. Kuring geus capitalized hurup kahiji di dieu, ieu nu urang sebut konvénsi ngaran pascal. Konvénsi ieu béda ti nu dipaké pikeun ngaran variabel jeung fungsi urang nu urang salawasna ngagunakeun hurup leutik tur misahkeun sababaraha kecap maké underscore. Tapi nalika namina kelas, urang henteu nganggo underscore pikeun misahkeun sababaraha kecap tibatan, urang nganggo hurup mimiti unggal kecap.
Saatos netepkeun kelas urang, titik dua dianggo anu hartosna ayeuna blok ditetepkeun.
class Point:
def move (self):
Dina blok ieu, urang tiasa ngartikeun sadaya fungsi atanapi metode anu aya dina titik. Contona, urang bisa nangtukeun hiji fungsi disebut "move" pikeun mindahkeun titik. Catet yén pas urang ngetik kurung kabuka, PyCharm otomatis nambihan "diri" di dieu. Ieu mangrupikeun kecap konci khusus sareng hayu atuh uih deui sakedap. Hayu urang nyitak "move" dina terminal.
print("move")
Hayu urang ngartikeun metodeu sanés sapertos "ngagambar" sareng nyitak dina terminal.
def draw(self):
print("draw")
Urang geus rengse kalayan definisi urang "titik" kelas. Kalawan tipe anyar ieu, urang bisa nyieun objék anyar. Hiji kelas saukur nangtukeun blueprint atawa template pikeun nyieun objék nu mangrupakeun instansi sabenerna dumasar kana blueprint éta. Pikeun nyieun hiji obyék, urang ngetik kaluar ngaran kelas urang lajeng nelepon deui kawas fungsi. Ieu nyiptakeun obyék anyar lajeng mulih deui. Teras urang tiasa nyimpen obyék éta dina variabel. Hayu atuh nunjukkeun ka anjeun:
Di dieu kami geus ditetepkeun "point1" nu mangrupakeun titik tilu diménsi. Anjeun tiasa ningali éta, urang tiasa nyitak koordinat individu dina terminal.
Urang tiasa nganggo dua metodeu "ngagambar" sareng "move" kalayan titik ieu.
Jadi mun recap, urang make kelas keur ngartikeun tipe anyar jeung tipe ieu bisa mibanda métode nu urang ngartikeun dina awak kelas. Kelas tiasa gaduh atribut anu tiasa urang setel dimana waé dina program urang.
Panyusun
Sajauh ieu, urang geus diajar kumaha carana nyieun tipe anyar ngagunakeun kelas. Ayeuna aya masalah leutik kalawan palaksanaan ieu. Urang tiasa nyiptakeun objek titik tanpa koordinat x atanapi y nganggo kelas sareng éta henteu idéal. Hayu atuh némbongkeun Anjeun.
Hayu urang ngadamel titik sareng nyitak sateuacan urang nyetél koordinat x. Ngajalankeun program kami nyababkeun kasalahan atribut sapertos kieu:
Ieu ngandung harti yén objek titik teu boga atribut disebut x. Ayeuna masalahna nyaéta dimungkinkeun pikeun gaduh objek titik tanpa koordinat x atanapi y. Ieu henteu masuk akal sabab iraha waé urang ngobrol ngeunaan hiji titik, urang kedah terang dimana lokasina. Pikeun ngajawab masalah ieu, urang ngagunakeun constructor a. A constructor mangrupakeun fungsi nu bakal disebut dina waktu nyieun hiji obyék.
Ieu kumaha kami nganggo konstruktor. Mimiti, hayu urang lulus nilai koordinat x sareng y dina program di luhur.
point = Point(10, 20)
print(point.x)
Ayeuna, urang kedah nambihan metode khusus dina kelas ieu anu disebut konstruktor. Sintaksisna sapertos kieu:
def __init__(self, x, y):
init
nyaeta pondok pikeun initialized, sarta ieu fungsi atawa métode nu bakal disebut nalika objek titik anyar dijieun. The x jeung y ditambahkeun katuhu sanggeus self
pikeun nambahkeun dua parameter tambahan.
Sanggeus éta, urang kedah peta x jeung y kana nilai lulus ie 10 jeung 20
self.x = x
self.y = y
Kami nganggo self
pikeun nujul ka objek ayeuna lajeng urang nyetel atribut x ka argumen x diliwatan kana fungsi "x". Ku cara kieu, ngagunakeun init
métode, urang bisa initialize objék urang. Metoda ieu disebut constructor a. Hayu urang ngajalankeun program urang.
Ayeuna, urang tiasa ngarobih koordinat x sareng y engké. Hayu urang ngamutahirkeun x koordinat:
point = Point(10, 20)
point.x = 11
print(point.x)
Ayeuna, koordinat x diropéa kana nilai 11.
latihan
Ieu latihan anu pikaresepeun pikeun anjeun.
Abdi hoyong anjeun nangtukeun tipe anyar disebut jalma. Objék "Jalma" ieu kedah ngagaduhan "name
atribut "sareng"talk()
”Metode.
Ieu mangrupikeun tugas anu saderhana sareng henteu kedah nyandak langkung ti sababaraha menit.
leyuran
Mimitian ku nangtukeun kelas "Jalma" sapertos kieu:
class Person:
self.name = name
Urang bakal nangtukeun constructor engké. Ayeuna, urang tiasa nyiptakeun obyék "Jalma". Sebut waé John
john = Person("John Smith")
print(john.name)
john.talk()
Ayeuna, lebet kana bagian kahiji kode sareng jieun konstruktor.
def __init__(self, name):
Kodeu ahir bakal katingali sapertos kieu:
Anjeun oge bisa make senar formatna jeung konsép séjén ditéang jeung kelas na konstruktor.
Warisan
Warisan mangrupikeun konsép sanés anu aya hubunganana sareng kelas anu ngamungkinkeun anjeun nganggo deui kodeu.
Mertimbangkeun sapotong kode ieu.
class Dog:
def walk(self):
print("walk")
Kami geus dijieun kelas "Anjing" kalawan metoda "leumpang". Dina metoda ieu, urang ngan saukur nyitak pesen walk dina terminal. Hayu urang nyebutkeun, dina program nyata, Aya 10 garis kode tinimbang ngan hiji garis dieu. Dina mangsa nu bakal datang, lamun kelas sejen diperlukeun pikeun mibanda metoda "leumpang", urang kudu ngulang sagala kode éta. Ieu teu idéal.
Dina pemrograman, urang gaduh prinsip anu disebut DRY anu pondok pikeun henteu ngulang diri. Hayu urang nyarios ka hareup, urang mendakan masalah sareng metode "jalan" urang sareng upami urang ngulang atanapi duplikat metode ieu di seueur tempat anu sanés, urang kedah uih deui sareng ngalereskeun masalah éta di unggal tempat anu kami duplikat ieu. kodeu. Ku kituna dina programming urang teu kudu nangtukeun hiji hal dua kali.
Aya sababaraha pendekatan anu béda pikeun ngalereskeun masalah ieu tapi di dieu urang bakal diajar anu langkung gampang pikeun pamula sareng disebut warisan. Dina hal ieu, urang bakal nyieun kelas sejen "mamalia" jeung nangtukeun atribut "leumpang" kami di kelas éta.
class Mammal:
def walk(self):
print("walk")
Saatos nangtukeun kelas "Mammal" urang tiasa nganggo warisan pikeun lulus atribut sapertos kieu:
Duanana kelas anjing jeung ucing anu inheriting sagala métode kelas didefinisikeun dina kelas indungna maranéhanana. Ayeuna, urang tiasa nambihan metode khusus pikeun anjing sapertos kieu:
class Dog:
def bark(self):
print("bark")
Bérésan!
Ieu sadayana ngeunaan kelas, konstruktor sareng nganggo deui kodeu di kelas kalayan konsép warisan. Ayeuna urang nuju ka tungtung séri urang. Dina titik ieu, anjeun kedah tiasa ngahasilkeun kode anu saé, tiasa dibaca sareng singket dina Python.
Urang bakal ningali konsép modul sareng pakét dina kuliah salajengna.
Leave a Reply