Pythonda turtle yordamida harakatlanuvchi shakl yaratish


ARGUMENT QABUL QILUVCHI METODLAR


Download 75.03 Kb.
bet4/6
Sana22.07.2023
Hajmi75.03 Kb.
#1661729
1   2   3   4   5   6
Bog'liq
Pythonda xatoliklar bilan ishlash

ARGUMENT QABUL QILUVCHI METODLAR


Yuqoridagi misolimizda barcha metodlar faqatgina self parametrini qabul qilishayapti. Aslida, barcha funksiyalar kabi, klass ichidagi obyektlarni ham boshqa argumentlar qabul qiladigan qilib yozish mumkin.
class Talaba:
"""Talaba nomli klass yaratamiz"""
def __init__(self,ism,familiya,tyil):
"""Talabaning xususiyatlari"""
self.ism = ism
self.familiya = familiya
self.tyil = tyil
def get_name(self):
"""Talabaning ismini qaytaradi"""
return self.ism
def get_lastname(self):
"""Talabaning familiyasini qaytaradi"""
return self.familiya
def get_fullname(self):
"""Talabaning ism-familiyasini qaytaradi"""
return f"{self.ism} {self.familiya}"
def get_age(self,yil):
"""Talabaning yoshini qaytaradi"""
return yil-self.tyil
def tanishtir(self):
print(f"Ismim {self.ism} {self.familiya}. {self.tyil} yilda tu'gilganman")
Yuqorida klassimizga yangi get_age(self,yil) metodini qo'shdik. Bu metod obyektning o'zidan tashqari, qo'shimcha, yil argumentini ham qabul qiladi va talabaning yoshini qaytaradi.
talaba1 = Talaba("Alijon","Valiyev",2000)
print(talaba1.get_age(2021))
Natija: 21

pass OPERATORI


Pythonda hech qanday vazifani bajarmaydigan pass operatori mavjud. Bu operatordan bo'sh metodlar yaratishda foydalanish mumkin. Misol uchun siz klassingiz uchun muhim metodlarni bilasiz, lekin metod badani hali tayyor emas. Agar metod badanini bo'sh qoldirsangiz, Python IndentationError xatosini qaytaradi. Shunday xolatlarda, funksiya badaniga pass operatorini qo'yib ketishimiz mumkin:
class User:
def __int__(self,name,username,email):
self.name = name
self.uname = username
self.mail = email
def describe():
pass
def get_email():
pass
Yuqoridagi klassimizda describe() va get_email() funksiyalar badani hali tayyor emas, bo'shliqni to'ldirish uchun esa pass operatoridan foydalanganmiz.

Bugun classlar bilan birgalikda funksiyalarni yana bir takrorlaymiz, va yana albatta yozgan kodimizda yangi uchragan amallarga izoh keltirishga harakat qilaman.



OOP o'zbekchasida OYD deyilsa kerak :), yani obektga yo'naltirilgan dasturlash. Bilmaganlar uchun qisqacha ma'lumot. OOP da xamma malumotlar obekt ko'rinishida bo'ladi, yani classlarning obektlari. Masalan Hayvonlar class deb qaralsa unda sizning mushugingiz o'sha classni obekti hisoblanadi. OOP da avlodlashtirish (nasledovanie) degan tushuncha bor, u haqidayam qisqacha aytib o'taman. Huddi o'sha Hayvonlar misolida ko'radigan bo'lsak «Uy hayvonlari» Hayvonlardan avlodlashtirilgan class hisoblanadi. yoki «Sut emizuvchilar», «Sudralib yuruvchilar» va ohir oqibat «Mushiklar» ham «Hayvonlar» classiga tegishli bir class hisoblanadi, a aynan sizning mushugingiz shu class obyekti. Quyidagi rasm ancha oydinlik kiritsa kerak (codeproject.comdan olindi):

Dasturlashda avlodlashtirishgan classlar child (farzand), a undan tepada turgan class esa parent deyiladi. Gap ko'payib ketti, tushunarsiz joylari bo'lsa qolgani commentlar yoki forum.opennet.uz da.
Endi praktikaga qaytadigan bo'lsak, kechagi darsimizdagi calculatorni class ko'rinishiga keltirishga harakat qilamiz. pythonda (va boshqa tillarda) math degan module bor (keyin ko'rib chiqarmiz :)), shunga o'xshagan class qilishga urinib ko'ramiz. O'rganishni tezlashtirish uchun bitta faylda bir nechta «mavzu» ni ko'rib ketishga harakat qilaman, aynan: comment,class yaratish, class construktori, modul import qilish (chaqirish), class metodlarini (funksiyalarini) chaqirish, global o'zgaruvchi va hakozolarni ko'rib o'tamiz:



Download 75.03 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling