Pemrograman berorientasi obyek Python
Python minangka basa serbaguna sing uga kalebu pemrograman berorientasi obyek.
Ing artikel iki kita bakal nliti prinsip dhasar pemrograman berorientasi obyek (OOP) ing Python.
Saka enkapsulasi lan warisan nganti kelas abstrak lan iterator, kita bakal nutupi konsep penting sing mbantu sampeyan nggawe kode modular, bisa digunakake maneh, lan skalabel.
8 menit
Ing pemrograman berorientasi obyek Python Ayo ndeleng carane ngleksanakake enkapsulasi, warisan, polimorfisme, kelas abstrak lan iterator. Kita bakal nutupi konsep penting sing ngidini sampeyan nggawe kode modular, bisa digunakake maneh, lan skalabel.
kelas Python lan obyek
Kelas minangka model utawa prototipe sing ditemtokake pangguna saka obyek sing digawe. Kelas nyedhiyakake sarana nglumpukake data lan fungsi. Nggawe kelas anyar nggawe jinis obyek anyar, ngidini nggawe kedadean anyar saka jinis. Saben instance kelas bisa duwe atribut sing ana gandhengane kanggo njaga statuse. Instance kelas uga bisa duwe cara (ditemtokake dening kelas) kanggo ngganti negara.
Kanggo mangerteni sing perlu kanggo nggawe kelas lan obyek ing Python.
Ayo nimbang conto: Upamane sampeyan pengin nglacak jumlah asu sing bisa uga duwe atribut sing beda kayata jenis lan umur. Yen dhaptar digunakake, item pisanan bisa dadi jenis asu, dene item kaloro bisa makili umure.
Upamane ana 100 asu sing beda-beda, kepiye sampeyan ngerti unsur sing kudune?
Apa yen aku pengin nambah properti liyane menyang asu kasebut?
Iki ora duwe organisasi lan persis sing dibutuhake kelas.
Sintaksis: Definisi kelas
Jeneng Kelas:
# Pranyatan
Sintaksis: Definisi obyek
obj = Jeneng Kelas()
print (obj.atrr)
Kelas nggawe struktur data sing ditemtokake pangguna, sing ngemot anggota data lan fungsi anggota dhewe, sing bisa diakses lan digunakake kanthi nggawe conto kelas kasebut. Kelas kaya cithak biru kanggo obyek.
Sawetara poin babagan kelas Python:
- Kelas digawe nggunakake tembung kunci kelas.
- Atribut minangka variabel sing kalebu ing kelas.
- Atribut tansah umum lan bisa diakses liwat operator titik (.). Contone: Kelasku.Myattribute
Nggawe kelas Python
Ing kene, tembung kunci kelas nuduhake yen sampeyan nggawe kelas, banjur jeneng kelas (ing kasus iki Dog).
asu kelas:
swara = "bakar"
Objek kelas Python
Ing pemrograman Python Obyek minangka conto saka Kelas. Kelas kaya proyek nalika conto minangka salinan kelas kasebut nilai-nilai nyata . Wis ora kepikiran maneh, asu tenan, kaya asu asu umur pitung taun. Sampeyan bisa duwe akeh asu kanggo nggawe akeh kedadean beda, nanging tanpa kelas minangka panuntun, sampeyan bakal ilang, ora ngerti apa informasi dibutuhake.
Objek kalebu:
- Negara: diwakili dening atribut obyek. Iku uga nggambarake sifat obyek.
- tindak tanduk: diwakili dening metode obyek. Iku uga nggambarake respon saka obyek kanggo obyek liyane.
- Idhentiti: menehi jeneng unik kanggo obyek lan ngidini obyek kanggo sesambungan karo obyek liyane.
Deklarasi obyek kelas (uga disebut instantiating a class)
Nalika obyek saka kelas digawe, kelas kasebut diarani instantiated. Kabeh kedadeyan nuduhake atribut lan prilaku kelas. Nanging nilai atribut kasebut, yaiku negara, unik kanggo saben obyek. Kelas siji bisa duwe sawetara conto.
Kelas Python lan conto obyek
Nggawe obyek ing Python melu instantiating kelas kanggo nggawe conto anyar saka kelas sing. Proses iki uga disebut instantiation obyek.
# Program Python3 kanggo
# nduduhake instantiating
#menyang kelas
asu kelas:
# Kelas sing prasaja
# atribut
attr1 = "mamalia"
attr2 = "asu"
# Metode sampel
def fun (self):
print("Aku", self.attr1)
print("Aku", self.attr2)
# Kode driver
# Instansiasi obyek
Rodger = Asu()
# Ngakses atribut kelas
# lan metode liwat obyek
print(Rodger.attr1)
Rodger.fun()
Output:
mamalia
Aku mamalia
Aku asu
Ing conto ing ndhuwur, obyek digawe kang Sejatine asu jenenge Rodger. Kelas iki mung nduweni rong atribut kelas sing ngandhani yen Rodger minangka asu lan mamalia.
Katerangan:
Ing conto iki, kita nggawe kelas Dog lan nggawe rong variabel kelas attr1 lan attr2 . Kita nggawe metode jenenge seneng() sing ngasilake string "I'm a, {attr1}" lan I'm a, {attr2}. Kita wis nggawe obyek saka kelas Dog lan printing kanggo attr1 dell'oggetto . Akhire, kita nelpon ing fungsi seneng() .
Parameter dhewe
Nalika kita nelpon cara obyek iki kaya myobject.method(arg1, arg2), iku otomatis diowahi saka Python ing MyClass.method (myobject, arg1, arg2): Iki kabeh poto khusus njupuk care saka.
Kelas GFG:
def __init__(dhewe, jeneng, perusahaan):
dhewe.jeneng = jeneng
dhiri.perusahaan = perusahaan
def show (awake dhewe):
print("Halo jenengku " + self.name+" lan aku" +
" kerja ing "+self.company+".")
obj = GFG("John", "BlogInnovazione")
obj.show()
Parameter Self ora nyebut Self, sampeyan bisa nggunakake jeneng liyane tinimbang. Ing kene kita ngganti dhewe dadi tembung wong lan output bakal padha.
Kelas GFG:
def __init__(somename, name, company):
somename.name = jeneng
somename.company = perusahaan
def nuduhake (somename):
print("Halo jenengku " + somename.name +
" lan aku kerja ing "+somename.company+".")
obj = GFG("John", "BlogInnovazione")
obj.show()
Output: output kanggo loro kode bakal padha.
Halo jenengku John lan aku kerja BlogInnovazione.
Katerangan:
Ing conto iki, kita nggawe kelas GFG lan nggawe variabel conto jeneng lan perusahaan ing konstruktor. Kita nggawe metode sing jenenge ngomong_hi() sing ngasilake string "Halo jenengku " + {jeneng} +" lan aku kerja ing "+ {perusahaan} +". Kita wis nggawe obyek saka wong kelas lan maringaken jeneng John lan Company BlogInnovazione menyang variabel conto. Akhire, kita nelpon nuduhake () saka kelas.
Pas pendidikan
Eksekusi program ora kena pengaruh instruksi ora ditindakake pass . Iku mung ngidini program kanggo ngliwati bagean kode kasebut tanpa nindakake apa-apa. Asring digunakake nalika watesan sintaksis saka Python padha mbutuhake instruksi sing bener nanging ora ana kode migunani sing kudu dieksekusi.
kelas MyClass:
pass
__init__() metode
Ing pemrograman berorientasi obyek python, cara __init__ iku cara konstruktor, padha karo konstruktor ing C ++ lan Jawa . Konstruktor digunakake kanggo miwiti kahanan obyek. Kaya metode, konstruktor uga ngemot koleksi statement (yaiku statement) sing dieksekusi nalika obyek digawe. Iku mlaku sanalika obyek saka kelas wis instantiated. Cara iki migunani kanggo nindakake apa wae initialization sing pengin sampeyan lakoni karo obyek sampeyan.
# Kelas sampel kanthi metode init
wong kelas:
# metode init utawa konstruktor
def __init__(dhewe, jeneng):
dhewe.jeneng = jeneng
# Metode Sampel
def say_hi(self):
print('Halo, jenengku', self.name)
p = Wong('Nikhil')
p. ngomong_hi()
Output:
Halo, jenengku Nikhil
Katerangan:
Ing conto iki, kita nggawe kelas Person lan nggawe variabel conto jeneng ing konstruktor. Kita nggawe metode sing diarani say_hi () sing ngasilake string "Halo, jenengku {jeneng}". Kita wis nggawe obyek saka wong kelas lan pass jeneng Nikhil kanggo variabel conto. Pungkasan, kita nelpon say_hi () saka kelas.
__str__() metode
Python nduweni cara tartamtu sing diarani __str__() . kang digunakake kanggo nemtokake carane obyek berkelas kudu diwakili minangka senar. Asring digunakake kanggo menehi obyek representasi tekstual sing bisa diwaca manungsa, migunani kanggo logging, debugging, utawa nuduhake informasi pangguna babagan obyek kasebut. Nalika obyek kelas digunakake kanggo nggawe senar nggunakake print () lan str () fungsi dibangun, fungsi kasebut kanthi otomatis digunakake. __str__() . Sampeyan bisa ngganti cara obyek katon kelas diwakili ing strings nemtokake cara __str__() .
Kelas GFG:
def __init__(dhewe, jeneng, perusahaan):
dhewe.jeneng = jeneng
dhiri.perusahaan = perusahaan
def __str__(self):
bali f"Jenengku {self.name} lan aku kerja ing {self.company}."
my_obj = GFG("John", "BlogInnovazione")
print(my_obj)
Output:
Jenengku John lan aku kerja BlogInnovazione.
Katerangan:
Ing conto iki, kita nggawe kelas sing diarani GFG. Ing kelas, kita nggawe rong variabel conto jeneng lan perusahaan . Ing metode __str__() kita ngasilake variabel conto jeneng lan variabel conto perusahaan . Pungkasan, kita nggawe obyek kelas GFG lan nelpon metode __str__ ().
Variabel kelas lan conto
Ing pemrograman berorientasi obyek python, variabel instance kanggo data, unik kanggo saben instance, lan variabel kelas kanggo atribut lan metode sing dienggo bareng karo kabeh instance kelas. Variabel instance yaiku variabel sing nilaine ditugasake ing konstruktor utawa metode kanthi mandiri, dene variabel kelas yaiku variabel sing ditugasake ing kelas.
Nemtokake variabel conto nggunakake konstruktor.
# Program Python3 kanggo nuduhake yen variabel kanthi nilai
# diutus ing pranyatan kelas, punika variabel kelas lan
# variabel ing metode lan konstruktor minangka conto
#variabel.
# Kelas kanggo Anjing
asu kelas:
# Variabel Kelas
kewan = asu
# Metode init utawa konstruktor
def __init__(self, breed, color):
# Variabel Instance
sarira.trah = tangkar
dhiri.warna = warna
# Obyek kelas Dog
Rodger = Asu("Pug", "coklat")
Buzo = Dog("Bulldog", "ireng")
print('Detail Rodger:')
print('Rodger iku sawijining', Rodger.animal)
print('Jenis: ', Rodger.breed)
print('Warna:', Rodger.color)
print('\nRincian Buzo:')
print('Buzo iku sawijining', Buzo.animal)
print('Breed: ', Buzo.breed)
print('Warna:', Buzo.color)
# Variabel kelas bisa diakses nggunakake kelas
#jeneng uga
print("\nMengakses variabel kelas menggunakan nama kelas")
print(Asu.kewan)
Output:
Rincian Rodger:
Rodger minangka asu
Jenis: Pug
werna: coklat
Rincian Buzo:
Buzo iku asu
Jenis: Bulldog
werna: ireng
Ngakses variabel kelas nggunakake jeneng kelas
dog
Katerangan:
Kelas sing jenenge Dog ditetepake kanthi a variabel kelas kewan disetel kanggo senar "asu". Variabel kelas dituduhake dening kabeh obyek saka kelas lan bisa diakses liwat jeneng kelas. Kelas Dog duwe rong variabel conto jenis lan werna. Sabanjure kita bakal nggawe rong obyek kelas Dog lan kita bakal nyithak nilai loro obyek kanthi variabel kelas sing diarani kewan.
Nemtokake variabel conto nggunakake metode normal:
# Program Python3 kanggo nuduhake yen kita bisa nggawe
# variabel conto ing metode
# Kelas kanggo Anjing
asu kelas:
# Variabel Kelas
kewan = asu
# Metode init utawa konstruktor
def __init__(self, breed):
# Variabel Instance
sarira.trah = tangkar
# Nambahake variabel conto
def setColor(self, color):
dhiri.warna = warna
# Njupuk variabel conto
def getColor(self):
bali dhewe.warna
# Kode Driver
Rodger = Asu ("pug")
Rodger.setColor("coklat")
print(Rodger.getColor())
Output:
coklat
Katerangan:
Ing conto iki, kita wis nemtokake kelas sing dijenengi Dog lan kita digawe siji variabel kelas kewan. Kita nggawe variabel conto jenis ing tukang gawe . Kelas Dog kasusun saka rong cara setWarna e njalukColo r, kang digunakake kanggo nggawe lan initialize variabel Kayata lan njupuk Nilai saka variabel Kayata. Kita wis nggawe obyek kelas Dog lan kita wis nyetel Nilai saka variabel Kayata coklat lan Printing Nilai ing terminal.