|
1-savol////1-11-16-26-31 Ob’ekt tushunchasi yoritib bering va misollar keltiring
|
bet | 6/10 | Sana | 08.02.2024 | Hajmi | 58,84 Kb. | | #153113 |
Bog'liq PYTHONEfrom django.db import models
class BaseModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
class Post(BaseModel):
title = models.CharField(max_length=255)
content = models.TextField()
def __str__(self):
return self.title
Bu misolda BaseModel nomli oddiy sinf yaratilgan, va u created_at va updated_at xususiyatlarini o'z ichiga oladi. Meta klasida esa abstract = True so'zi bilan, bu sinfni "abstrakt" sinf qilib, ma'lumotlar bazasida jadvalga aylanmaslikni ko'rsatadi. BaseModel sinfi yaratilganda, uni boshqa modellarda boshqa yaratilgan sinf hisobida voris qila olishingiz mumkin. Bu, har bir modelda avtomatik ravishda yaratilgan created_at va updated_at xususiyatlari bilan ma'lumotlar bazasida o'zgarishlar yozishni osonlashtiradi.
Agar har bir modelda created_at va updated_at xususiyatlarini o'zgarishsiz qo'shishni istasangiz, ota-class yordamida bu xususiyatlarni har bir model uchun o'zgarishsiz qo'shish mumkin. ta-class yordamida boshqa qo'shimcha ma'lumotlar,
(1-misol////7-22-36)Vorislik tushunchasini misollar yordamida tushuntirib bering Vorislik (inheritance), dasturlashda kodni qayta ishlab chiqishni osonlashtiradigan usuldir. Bu tushuncha, bitta sinfning barcha xususiyatlarini va metodlarini ikkinchi bir sinfga olib kelish va shu ikkinchi sinfda ularga qo'shimcha xususiyatlar va metodlar qo'shish imkonini ta'minlaydi. Bu o'zgarishlarni bajarmasdan, ota sinfdagi (voris qilgan sinfdagi) barcha yangi sinflardagi o'zgarishlarga ta'sir ko'rsatadi.
VORIS KLASS YARATISH Talaba klassimizni qaytadan yaratamiz. Talaba ni yaratishda, Shaxs dan super klass sifatida foydalanamiz:
class Talaba(Shaxs):
def __init__(self, ism, familiya, passport, tyil):
super().__init__(ism, familiya, passport, tyil)
Talaba klassi uchun alohida get_info() metodini yozmagan bo'lsakda, bu metod Talabaga Shaxsdan meros o'tdi. Voris klassga super klassdan meros qolgan istalgan metodni qayta talqin qilish mumkin. Ota sinfdagi (voris qiladigan sinfdagi) barcha xususiyatlar va metodlar, voris qilgan sinfga avtomatik ravishda o'tadi. Bu, kodni boshqa sinflarni yaratishda qayta-qayta qo'llashni osonlashtiradi. Voris qilgan sinfda o'zgarishlarni kiritmasdan, ota sinfdagi funksionalni qo'shish imkonini beradi. Bu, kodni boshqa sinflarga qo'shimcha funksional qo'shishda juda qulaydir. Voris qilgan sinf va voris qiluvchi sinf obyektlari barcha funksiyalarni va metodlarni bir xil qilishga majbur bo'lmasa ham, ularning umumiy tushunchasi bir-biriga mos kelishi ta'minlanadi.
class Talaba(Shaxs):
"""Talaba klassi"""
def __init__(self, ism, familiya, passport, tyil,idraqam):
"""Talabaning xususiyatlari"""
super().__init__(ism, familiya, passport, tyil)
self.idraqam = idraqam
self.bosqich = 1
|
| |