Похожие презентации:
Introduction_to_OOP_Python_AZ
1.
Introduction to OOP in PythonOOP
Classes, Objects, Attributes, Methods, Inheritance, Polymorphism
Dərsin məqsədi
OOP məntiqini sadə dillə izah etmək və Python üzərində əsas
nümunələri göstərmək.
Qasım Məmmədov
Python ilə siniflər və
obyektlər üzərində düşünmə
modeli
2.
Dərsin məqsədləriBu dərsin sonunda tələbə aşağıdakı anlayışları başa düşməlidir.
• OOP anlayışını və niyə istifadə olunduğunu izah etmək
• class və object arasındakı fərqi başa düşmək
• Python-da class yaratmaq və object istifadə etmək
• instance attribute və method məntiqini tətbiq etmək
• inheritance və overriding nümunələrini yazmaq
• polymorphism fikrini sadə nümunələrlə anlamaq
Python OOP
Təklif
Car, Student, BankAccount, Animal kimi
nümunələrdən istifadə et.
2
3.
OOP əsaslarıƏsas anlayışlar: class, object, attribute və method
Python OOP
3
4.
OOP nədir?Object-Oriented Programming proqramı obyektlər üzərində qurmaq yanaşmasıdır.
• Məlumatı və davranışı bir sinifdə birləşdirir
• Real həyatda olan varlıqları proqramda
modelləşdirir
• Böyük layihələrdə kodu daha nizamlı saxlayır
• Kodun təkrar istifadəsini asanlaşdırır
Misallar
Sadə fikir
Car
Student
BankAccount
Animal
Class bir modeldir,
object isə həmin
modelin konkret
nümunəsidir.
“Real həyatda avtomobil necədirsə, proqramda da onu
sinif kimi təsvir edirik” kimi izah et.
Python OOP
4
5.
Niyə OOP istifadə olunur?OOP həm kiçik, həm də böyük proqramların qurulmasında faydalıdır.
Oxunaqlılıq
Təkrar istifadə
İdarəetmə
Genişlənmə
Kod daha səliqəli və
məntiqli olur.
Bir dəfə yazılan class bir
neçə yerdə işlənə bilər.
Böyük layihələrdə strukturu
qorumaq asanlaşır.
Mövcud class əsasında yeni
class yaratmaq olur.
• OOP-də data və funksiya bir obyekt daxilində toplanır
• Bu yanaşma xüsusilə UI, backend və oyunlarda geniş istifadə
olunur
Python OOP
5
6.
Class və Object nədir?Ən vacib başlanğıc anlayışları bunlardır.
Class
Object
Fikir
Şablon və ya blueprint
Məsələn: Car
Class əsasında yaradılan konkret nümunə
Məsələn: BMW
Class ümumi təsvir verir, object
isə real instancedir.
Misal
Class: Student
Objects: Aysel, Murad, Leyla
Python OOP
Sadə nümunə
1 class Car:
2
pass
3
4 bmw = Car()
5 mercedes = Car()
6
7.
İlk class nümunəsiBoş bir class yaratmaq üçün pass istifadə etmək olar.
• class açar sözü ilə sinif yaradılır
• Sinif adları adətən böyük hərflə başlayır
• pass hələlik sinifin içində məntiq olmadığını
göstərir
Ən sadə class
1 class Student:
2
pass
Nəticə
Bu sinif hazırda yalnız modeldir. Hələ məlumat və
davranış yoxdur.
Python OOP
7
8.
Object yaratmaqClass yazıldıqdan sonra ondan obyektlər yaradırıq.
• Student() çağırışı yeni object yaradır
• Hər yaradılan object yaddaşda ayrıca
nümunədir
• Eyni class-dan istədiyin qədər object yarada
bilərsən
Object nümunəsi
1 class Student:
2
pass
3
4 s1 = Student()
5 s2 = Student()
6
7 print(s1)
8 print(s2)
Vacib fikir
s1 və s2 eyni class-dan yaransa da, fərqli obyektlərdir.
Python OOP
8
9.
_ _ init_ _ () metoduObject yaranan anda ilkin dəyərləri vermək üçün istifadə olunur.
• __init__() constructor kimi işləyir
• Object yaradılan kimi avtomatik çağırılır
• Ad, yaş, qiymət kimi ilkin məlumatları burda
saxlayırıq
Python OOP
__init__ nümunəsi
1 class Student:
2
def __init__(self, name, age):
3
self.name = name
4
self.age = age
5
6 s1 = Student("Aysel", 20)
7 print(s1.name)
8 print(s1.age)
9
10.
Attribute nədir?Attribute obyektin xüsusiyyətidir.
Student atributları
name
age
grade
Python OOP
• Hər obyekt öz atribut
dəyərlərini saxlayır
• Atributlar object-in
vəziyyətini təsvir edir
• self vasitəsilə həmin
obyektə yazılır
Attribute nümunəsi
1 class Student:
2
def __init__(self, name, age,
grade):
3
self.name = name
4
self.age = age
5
self.grade = grade
6
7 s1 = Student("Murad", 19, 87)
8 print(s1.name)
9 print(s1.grade)
10
11.
Method nədir?Class daxilində yazılan funksiyalara method deyilir.
• Method obyektin davranışını göstərir
• Object vasitəsilə çağırılır
• Məsələn: introduce(), deposit(), withdraw()
Python OOP
Method nümunəsi
1 class Student:
2
def __init__(self, name):
3
self.name = name
4
5
def introduce(self):
6
print("Salam, mənim adım",
self.name)
7
8 s1 = Student("Leyla")
9 s1.introduce()
11
12.
self nədir?self həmin object-in özünü göstərir.
• self.name dedikdə həmin obyektin adı nəzərdə
tutulur
• Python method daxilində object-ə bu yolla çatır
• self yazılmasa, object-in atributlarına çıxış olmaz
s elf nümunəs i
1 class Car:
2
def __init__(self, brand):
3
self.brand = brand
4
5
def show_brand(self):
6
print("Marka:", self.brand)
7
8 c1 = Car("Toyota")
9 c1.show_brand()
Sadə yadda s axlama
self = “bu obyekt”
Python OOP
12
13.
Bir neçə object ilə işEyni class müxtəlif dəyərlərlə bir neçə object yarada bilər.
• Məlumat fərqlidir, davranış eyni ola bilər
• info() eyni method-dur, amma nəticə object-ə
görə dəyişir
Python OOP
Fərqli object-lər
1 class Car:
2
def __init__(self, brand, color):
3
self.brand = brand
4
self.color = color
5
6
def info(self):
7
print(self.brand, "-", self.color)
8
9 c1 = Car("BMW", "Qara")
10 c2 = Car("Kia", "Ağ")
11
12 c1.info()
13 c2.info()
13
14.
Instance attribute və class attributeBiri hər object üçün ayrıdır, digəri bütün object-lər üçün ortaqdır.
Müqayisə nümunəsi
Class attribute
Instance attribute
Bütün object-lər üçün ortaqdır
Məsələn: school
Hər object üçün ayrıca saxlanır
Məsələn: name
Python OOP
1 class Student:
2
school = "Oxford School"
3
4
def __init__(self, name):
5
self.name = name
6
7 s1 = Student("Ayan")
8 s2 = Student("Nihat")
9
10 print(s1.name)
11 print(s2.name)
12 print(s1.school)
14
15.
Atributu sonradan dəyişməkObject yaradıldıqdan sonra attribute dəyiş dirilə bilər.
• Atribut dəyərləri sabit olmaq məcburiyyətində
deyil
• Y eni dəyər birbaş a object üzərindən yazılır
Python OOP
Dəyər yeniləmə
1 class Student:
2
def __init__(self, name, age):
3
self.name = name
4
self.age = age
5
6 s1 = Student("Ramil", 18)
7 print(s1.age)
8
9 s1.age = 19
10 print(s1.age)
15
16.
Praktik nümunə: BankAccountData və davranışın bir class daxilində birləşməsini göstərən yaxşı nümunədir.
• owner və balance data hissəsidir
• deposit(), withdraw(), show_balance() davranış
hissəsidir
• Bu, OOP məntiqini real həyatda ən yaxşı göstərən
sadə modellərdən biridir
Python OOP
Bank hesabı nümunəsi
1 class BankAccount:
2
def __init__(self, owner, balance):
3
self.owner = owner
4
self.balance = balance
5
6
def deposit(self, amount):
7
self.balance += amount
8
9
def withdraw(self, amount):
10
if amount <= self.balance:
11
self.balance -= amount
12
else:
13
print("Balans kifayət
deyil")
16
17.
Inheritance və Polymorphismİrsiyyət, overriding və müxtəlif davranışlar
Python OOP
17
18.
Inheritance nədir?Bir class başqa class-dan xüsusiyyət və metodları götürə bilər.
• Parent class ümumi məntiqi saxlayır
• Child class həmin məntiqi istifadə edib
genişləndirir
• Kod təkrarını azaltmaq üçün çox faydalıdır
Misal
Üstünlük
Parent: Animal
Child: Dog
Eyni eat() metodunu bir
neçə heyvan sinfi istifadə
edə bilər.
Məntiq
Əvvəl ümumi olanı parent-də yazırıq, sonra xüsusi olanı
child-a əlavə edirik.
Python OOP
18
19.
Sadə inheritance nümunəsiDog sinfi Animal sinfindən miras alır.
• Dog, Animal daxilindəki eat() metodunu
avtomatik alır
• Dog özünə aid bark() metodunu da əlavə edir
Python OOP
Inheritance nümunəsi
1 class Animal:
2
def eat(self):
3
print("Heyvan yemək yeyir")
4
5 class Dog(Animal):
6
def bark(self):
7
print("İt hürür")
8
9 d1 = Dog()
10 d1.eat()
11 d1.bark()
19
20.
super() istifadəsiParent class-ın constructor və ya metodlarına çatmaq üçün istifadə olunur.
super() nümunəsi
• Child class daxilində parent məntiqini çağırır
• Xüsusilə __init__() daxilində çox istifadə olunur
Python OOP
1 class Animal:
2
def __init__(self, name):
3
self.name = name
4
5 class Dog(Animal):
6
def __init__(self, name, breed):
7
super().__init__(name)
8
self.breed = breed
9
10 d1 = Dog("Toplan", "Golden")
11 print(d1.name)
12 print(d1.breed)
20
21.
Method overriding nədir?Child class parent class-dakı metodu yenidən yaza bilər.
• Metod adı eyni qalır
• Davranış child class-a uyğun dəyişir
• Bu, polymorphism üçün əsas addımlardan biridir
Overriding nümunəsi
1 class Animal:
2
def sound(self):
3
print("Heyvan səs çıxarır")
4
5 class Dog(Animal):
6
def sound(self):
7
print("Hav hav")
8
9 class Cat(Animal):
10
def sound(self):
11
print("Miyau")
Nəticə
Dog.sound() və Cat.sound() eyni metod adı ilə fərqli nəticə
verir.
Python OOP
21
22.
Polymorphism nədir?Eyni metod adı, amma obyektə görə fərqli davranış.
• Bir interfeys, müxtəlif nəticələr
• Kod daha çevik və genişlənə bilən olur
• Loop daxilində müxtəlif obyektlərə eyni metod
çağırmaq olur
Python OOP
Polymorphism nümunəsi
1 class Dog:
2
def sound(self):
3
print("Hav hav")
4
5 class Cat:
6
def sound(self):
7
print("Miyau")
8
9 animals = [Dog(), Cat()]
10
11 for animal in animals:
12
animal.sound()
22
23.
Python-da polymorphism və duck typingPython daha çox davranışa baxır, sərt tipə yox.
• Əgər obyekt lazım olan metodu dəstəkləyirsə,
istifadə edilə bilər
• Bu yanaş ma duck typing adlanır
• F unksiya obyektin hansı class-dan olmasına yox, nə
edə bildiyinə baxır
Python OOP
Duck typing
1 class Bird:
2
def move(self):
3
print("Uçur")
4
5 class Fish:
6
def move(self):
7
print("Üzür")
8
9 def make_it_move(creature):
10
creature.move()
11
12 make_it_move(Bird())
13 make_it_move(Fish())
23
24.
Praktik polymorphism nümunəsi: ShapeEyni area() metodu müxtəlif fiqurlarda fərqli hesablanır.
• Rectangle sahəni width * height ilə hesablayır
• Circle isə radius əsasında hesablayır
• İstifadə nöqtəsində hər ikisi üçün area() çağırılır
Python OOP
Shape nümunəsi
1 class Rectangle:
2
def __init__(self, width, height):
3
self.width = width
4
self.height = height
5
6
def area(self):
7
return self.width * self.height
8
9 class Circle:
10
def __init__(self, radius):
11
self.radius = radius
12
13
def area(self):
14
return 3.14 * self.radius *
self.radius
24
25.
XülasəBu gün keçdiyimiz əsas anlayış lar
• Class → ş ablon
• Object → real nümunə
• Attribute → xüsusiyyət
• Method → davranış
• Inheritance → miras alma
• Overriding → metodu yenidən yazmaq
• Polymorphism → eyni metod, fərqli davranış
Python OOP
Yadda s axla
OOP yalnız sintaksis deyil, düş ünmə
modelidir.
Əs as mes aj
Real obyektləri proqram içində düzgün
modelləşdirmək OOP-nin mərkəzində
dayanır.
25
26.
Mini tapşırıq 1Tələbənin mövzunu praktik yoxlaması üçün.
Nümunə həll
• Book adlı class yaradın
• Atributlar: title, author, price
• show_info() metodu kitab məlumatını çap etsin
Python OOP
1 class Book:
2
def __init__(self, title, author,
price):
3
self.title = title
4
self.author = author
5
self.price = price
6
7
def show_info(self):
8
print(self.title, self.author,
self.price)
9
10 b1 = Book("Python Basics", "Ali", 25)
11 b1.show_info()
26
27.
Mini tapşırıq 2Inheritance və polymorphism üçün kiçik məşq.
• Animal parent class olsun
• Dog və Cat child class olsun
• Hər birində sound() fərqli nəticə versin
• Sonra obyektləri list içində saxlayıb loop ilə
çağırın
Python OOP
Gözlənilən fikir
1 class Animal:
2
pass
3
4 class Dog(Animal):
5
def sound(self):
6
print("Hav hav")
7
8 class Cat(Animal):
9
def sound(self):
10
print("Miyau")
11
12 for animal in [Dog(), Cat()]:
13
animal.sound()
27
28.
Dərsin yekunuOOP Python-da həm başlanğıc, həm də peşəkar səviyyədə vacib mövzudur.
• Class və object anlayışı OOP-nin təməlidir
• Attribute və method obyektin data və davranışını
təşkil edir
• Inheritance və polymorphism kodu daha güclü və
çevik edir
Son cümlə
OOP böyük proqramların qurulmasında ən çox
istifadə olunan yanaşmalardan biridir.
Davam üçün
Növbəti mövzu kimi encapsulation və abstraction
keçmək olar.
Python OOP
28