Python Methodları və Funksiyaları — Bunların fərqləri nələrdir?

Kamal Novruzov
Pragmatech
Published in
4 min readSep 15, 2020

İndiyə qədər həm metodlar, həm də funksiyalar haqqında bir anlayış əldə etmişik. Və ümumiyyətlə, proqramlaşdırmaya yeni başlayanlar bir funksiyanın metoddan fərqli olması barədə bir az çaşqınlığa meyillidirlər. Hər ikisinin də (method və funksiyanın) bircə məqsədi var ki, bir əməliyyat həyata keçirsən. Hər ikisi də hər hansı bir əməliyyatdan sonra bizə dəyər(value) qaytara bilir. Yəni bu qədər bənzər səslənirlərsə, həqiqətən hansı cəhətdən fərqlənirlər? Bu gün bu məqalə sizi Python-da Methodlar və funksiyalar haqqında məlumatlandıracaq.

Ancaq bunu etmədən əvvəl, ikisini, yəni Python Funksiyaları və Python Metodlarını ayrıca xatırlamalıyıq.

Python Functions

Sadəcə olaraq, bir funksiya vahid olaraq icra olunan və tək bir ad altında “encapsulated” bir sıra addımlardır. Bəzi tapşırıqları yerinə yetirməyə qadir ifadələr qrupudur. Bir proqramdakı funksiya arqumentlər götürə bilər (yəni işləməli olan məlumatlar) və istənildiyi tapşırığı yerinə yetirdikdən sonra bəzi məlumatları geri qaytara bilər(return).

Bir funksiya yaratmaq, əsasən kompüterinizə bir tapşırıq yerinə yetirmək üçün yaxşıca izah olunmuş

təlimatlar verməkdir. Beləliklə, 3 sadə addımda sadə bir funksiya yarada bilərik:

1. def show()

Tərcüməsi: ey kompüter, mənə show adlı bir funksiya ver.

2. def add(a, b)

Tərcüməsi: ey kompüter, show funksiyası iki arqument almalı olduğunu söyləyir. Kodun təkrar istifadəsi konsepsiyasının gəldiyi yer elə budur. Arqumentləri ümumiləşdirilmiş a və b adları verərək bəzi hallarda a 2, b 3, bəzi digər hallarda a 10 və ola biləcəyini söyləyirik.

3. def show(a, b)

return a+b

Tərcüməsi: hey kompüter, funksiyamın bəzi şeyləri qaytarmasına icazə ver,( a və b cəmini qaytarsın.)

Nəhayət, funksiyanı belə çağırırsınız:

show(10,30)

Bu, 10 və 30-un, yəni 40-un cəmini bizə qaytarır.

Python-da funksiyaların növləri

Pythondakı funksiyalar, bir çox digər proqramlaşdırma dilləri kimi, iki növü vardır:

1. Built-in functions

Daxili funksiyalar (built-in functions) zəngin Python kitabxanasına daxil edilmişdir. Bunlar dünyanın bir yerində bəzi proqramçıların uzun müddət əvvəl yaratdığı funksiyalardır və indi bu funksiyaları yenidən yazmaq məcburiyyətində qalmadan proqramınızda istədiyiniz vaxt istifadə edə bilərsiniz.

Misal olaraq print() funksiyasını göstərə bilərik, hansı ki, hər hansı bir görülən işi ekrana çap edir.

2. User-defined functions

Python, proqramımızın hər yerində istifadə edə biləcəyimiz öz funksiyalarımızı müəyyənləşdirməyə və istifadə etməyə imkan verir. Belə nümunələrdən biri yuxarıda yaratdığımız show () funksiyasıdır.

Python Methodları

Obyekt yönümlü proqramlaşdırmada obyektlər özündə bir xüsusiyyətə malikdir, yəni daxilindəki məlumat dəyərləri. Bəs bu xüsusiyyət dəyərlərindən(attribute values) necə istifadə edirik? Onlardan metodlar vasitəsilə istifadə edirik. Metodlar bir obyektin davranışını təmsil edir.

Metod, bir obyektlə əlaqəli və həmin obyektin məlumatları üzərində işləyən kod parçasıdır.

Çox cəhətdən bir metod bir funksiya ilə eynidir. İki böyük fərq istisna olmaqla:

Bir obyektlə əlaqələndirilir və biz onu həmin obyekt üzərində adlandırırıq.

Sinif içərisində olan məlumatlar üzərində işləyir.

(Xatırlayın ki, sinif bir şablondur və obyekt bir sinifdir)

Bir metod bir obyektlə əlaqəli olduğundan, bir metodun təyin edilməsi və yaradılması, müəyyənləşdirmə funksiyalarından bir az fərqlidir:

Həmişə bir sinif(class) daxilində bir metod təyin edirik.

Bir metod tərifi həmişə ilk parametr olaraq “özünü” əhatə edir.

Və nəhayət, nöqtədən istifadə edərək bir obyekt üzərində bir metod çağırırıq.

Metodları daha yaxşı başa düşmək üçün bir nümunəyə baxaq.

Bu nümunədə bir sinif avtomobili içərisində bir səs səsi təyin edirik.

Daha sonra Car sinfinə aid bir obyekt ferrari yaratdıq. Və sonda metodu obyektə səs () adlandırırıq ferrari.

İndi öyrəndiklərimizi fərqləndirək.

Metodlar:

  1. Metod tərifləri həmişə bir sinif daxilində mövcuddur.
  2. Metodlar aid olduqları sinifin obyektləri ilə əlaqələndirilir.
  3. Metod bir obyektə “on” deyilir. Onu sadəcə adı ilə çağıra bilmərik.
  4. Metodlar, əlaqələndirdikləri obyektin məlumatları üzərində işləyə bilər.
  5. Metodlar mənsub olduqları sinifdən asılıdır.
  6. Bir metodun ilk arqumenti olaraq “self” olması lazımdır.

Funksiyalar:

  1. Bir funksiyanı təyin etmək üçün bir sinifə ehtiyacımız yoxdur.
  2. Funksiyalar heç bir obyektlə əlaqələndirilmir.
  3. Yalnız bir adla bir funksiyaya müraciət edə bilərik.
  4. Funksiyalar, arqument olaraq ötürdüyünüz məlumatlar üzərində işləyir.
  5. Funksiyalar bir proqramdakı müstəqil varlıqlardır.
  6. Funksiyalar heç bir “self” arqumentinə ehtiyac duymur. Sıfır və ya daha çox mübahisəsi ola bilər.

Yekun

Metodlar və funksiyaların gördüyünüz zaman hər ikisi bənzər görünür, amma əslində olduqları ilə əsas fərqləri var. Bir sözlə, həm metodlar, həm də funksiyalar tapşırıqları yerinə yetirir və bir qədər dəyər(value) qazandıra bilər. Ancaq fərq, metodların obyektlərlə “əlaqəli” olmasına, funksiyalar isə əlaqəsiz olması ilə bağlıdır.

--

--